精华内容
下载资源
问答
  • 蓝桥杯 1个数

    2020-05-06 10:17:59
    蓝桥杯 1个数

    问题描述

    输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。

    输入格式

    一个正整数n

    输出格式

    一个整数,表示1出现的资料

    样例输入

    15

    样例输出

    8

    解题代码

    import java.util.Scanner;
    
    public class Main {
    
    	static Scanner sc = new Scanner(System.in);
    	
    	public static void main(String[] args) {
    		int n = sc.nextInt();
    		int num = 0;
    		for (int i = 1; i <= n; i++) {
    			String str = String.valueOf(i);
    			for (int j = 0; j < str.length(); j++) {
    				if(String.valueOf(str.charAt(j)).equals("1")) {
    					num = num + 1;
    				}
    			}
    		}
    		System.out.println(num);
    	}
    	
    }
    
    
    展开全文
  • 蓝桥杯1个数

    2021-02-05 17:35:35
    试题 算法训练 1个数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 ...

    试题 算法训练 1的个数

    资源限制
    时间限制:1.0s 内存限制:256.0MB
    问题描述
      输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
    输入格式
      一个正整数n
    输出格式
      一个整数,表示1出现的资料
    样例输入
    15
    样例输出
    8

    import java.util.Arrays;
    import java.util.Scanner;
    
    public class 出现1的个数 {
        public static void main(String[] args) {
            Scanner scanner=new Scanner( System.in );
            int n = scanner.nextInt();
            int count=0;
            for (int i = 1; i <= n; i++) {
            //把1-n的所有的数字变成字符数组
                char[] chars = String.valueOf( i ).toCharArray();
                for (int j = 0; j < chars.length; j++) {
                    //判断字符数组是否和1相等
                    if (chars[j]=='1'){
                        count++;//计数器
                    }
    
                }
                //            System.out.println( Arrays.toString( chars ) );
            }
            System.out.println( count );
        }
    
    
    
    }
    

    记得把类名改为Main.

    展开全文
  • [C++]蓝桥杯 1个数

    2020-03-19 09:28:41
     输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 输入格式  一个正整数n 输出格式  一个整数,表示1出现的资料 样例输入 15 ...

    问题描述
      输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
    输入格式
      一个正整数n
    输出格式
      一个整数,表示1出现的资料
    样例输入
    15
    样例输出
    8
    数据规模和约定
      n不超过30000

    #include<iostream>
    #include<math.h>
    using namespace std;
    int main(){
    	string n;
    	int a[5];
    	a[0]=1;
    	for(int i=1;i<5;i++){
    		a[i]=10*a[i-1]+pow(10,i);
    	}
    	//求出9,99,999,9999中含1的个数。
    	/*for(int i=0;i<5;i++){
    		cout<<a[i]<<endl;
    	}*/
    	while(cin>>n){
    		int cnt=0;
    		for(int i=0;i<n.length();i++){
    			int num=n[i]-'0';//num表示当前位上的数值
    			if(i==n.length()-1){
    				if(num>=1)cnt++;
    			}else{
    				int num=n[i]-'0';
    			if(num>1){
    				cnt+=(num)*a[n.length()-2-i]+pow(10,n.length()-1-i);
    			}
    			else if(num==1){
    			int cun=0;
    				for(int j=i+1;j<n.length();j++){
    					cun*=10;
    					cun+=n[j]-'0';
    				}
    				cnt+=a[n.length()-2-i]+cun+1;
    			}
    			}
    			
    		}
    
    		cout<<cnt<<endl;
    	}
    	return 0;
    }
    

    处理方法:随便举一个例子:先定义函数f(x)表示x中含有1的个数,则5394这个数中1的个数为:
    *f(5294)=(5+1)f(999)+294+1
    在一开始的步骤中就已经算出,9,99,999等数中1的个数。剩下的就是对特殊情况的讨论。
    当然这种情况直接用循环从1到n进行循环,算出每个数中含1的个数,再直接累加求和,那么结果显然是超时的,随着数字增大时间复杂度比数字增长的倍数还大。
    用公式的话是明显比暴力来得好啦啦啦。

    展开全文
  •  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 输入格式  一个正整数n 输出格式  一个整数,表示1出现的资料 样例输入 15 ...

    资源限制
    时间限制:1.0s 内存限制:256.0MB
    问题描述
      输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
    输入格式
      一个正整数n
    输出格式
      一个整数,表示1出现的资料
    样例输入
    15
    样例输出
    8
    数据规模和约定
      n不超过30000

    解题思路:
    查找前n个数的1的和,那么就用循环遍历每一个数,把每一个数都查分位数进行判断即可,代码如下:

    #include<bits/stdc++.h>
    
    using namespace std;
    
    int main(){
    	int n, a, b, c, d, e;
    	cin >> n;
    	int num = 0;
    	for(int i = 1; i <= n; i ++){
    		a = i / 10000;
    		b = i / 1000 - 10 * a;
    		c = i / 100 - (i / 1000) * 10;
    		d = i / 10 - (i / 100) * 10;
    		e = i % 10;
    		if (a == 1){
    			num ++;
    		}
    		if (b == 1){
    			num ++;
    		}
    		if (c == 1){
    			num ++;
    		}
    		if (d == 1){
    			num ++;
    		}
    		if (e == 1){
    			num ++;
    		}
    	}
    	cout << num;
    	return 0; 
    } 
    
    展开全文
  • 蓝桥杯——1个数

    2020-02-06 23:26:57
    1个数 问题描述  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 输入格式 一个正整数n 输出格式 一个整数,表示1出现的个数 ...
  • [蓝桥杯] 1个数

    2017-04-01 18:50:52
    1到20的所有数字中含有多少个“1” ...思路:构造一个函数计算每个数字中含有1个数,然后求和 public class Main { public static void main(String[] args) { int count = 0; for(int i=1;
  • 蓝桥杯 互质的个数

    2020-10-09 19:50:09
    不超过19000的正整数中,与19000互质的数的个数是多少?<br> 【答案提交】<br>这是一道结果填空的题,你只需要算出结果后提交即可。 本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容...
  • 蓝桥杯1个数

    2021-03-20 16:11:27
    判断1-n之间的数,一共包含几个1 #include<iostream> using namespace std; int sum=0; int digui(int n){ while(n!=0){ if(n%10==1) sum=sum+1; n=n/10; } return sum; } int main(){ int n; cin&...
  • 蓝桥杯-1个数-C++

    2021-01-20 00:56:42
    ALGO-195 1个数 题目 问题描述 输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 输入格式 一个正整数n 输出格式 一个整数,表示1...
  • 问题描述  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 输入格式  一个正整数n ...public class 一的个数 { pub...
  • 蓝桥杯 排列的个数 递归

    千次阅读 2015-04-04 16:25:53
    计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是《组合数学》的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决...if(m==0 || n==0) return 1; return _____________
  • Algo195 算法训练 1个数 题目如下: 这题很简单,摆明了让你暴力。但暴力也分麻烦不麻烦。我这里就选择把所有数拼接成一个字符串,最后一行算出1个数 package algo; import java.util.Scanner; /** * @...
  • 蓝桥杯试题:1个数

    2020-01-16 19:52:00
    问题描述 输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。输入格式 一个正整数n输出格式 一个整数,表示1出现的资料样例输入15...
  • Java实现 蓝桥杯 算法训练 1个数

    万次阅读 多人点赞 2020-02-07 19:44:11
    试题 算法训练 1个数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 ...
  • 试题 算法训练 1个数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 ...
  • 算法训练 1个数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。 输入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,292
精华内容 2,916
关键字:

蓝桥杯1的个数