7 条题解

  • 6
    @ 2023-11-30 21:19:56

    用数组去接收数字,数组下标代表每个个位数字,用数组的值代表每个数字出现的个数(来自csdn) #include <stdio.h> int main( ) { int i,M,N,b; int a[10]={0}; scanf("%d %d",&M,&N); for(i=M,i<=N;i++) { int num=i;//用变量num去代表i,不然进入while后i的值最终会变成0; while(num>0) { b=num%10; num/=10; a[b]++; } } for(i=0;i<10;i++) { printf("%d ",a[i]); } return 0; }

    • 4
      @ 2023-10-13 23:45:22

      #include <stdio.h>

      int main() { int number[10]={0};

      int m,n,k;
      scanf("%d %d",&m,&n);
      int num=m;
      for(k=1;k<=n-m+1;k++){
      	while(num!=0){
      		number[num%10]++;
      		num/=10;
      	}
      	num=m+k;
      }
       for(int p=0;p<=9;p++){
       	printf("%d ",number[p]);
       }
      
      
      return 0;
      

      }

      • 2
        @ 2024-10-12 0:58:48

        我这个更好理解一些,不过写的话还是按照下面曹操学长写的

        #include <stdio.h>

        int main () {

        int m, n;

        scanf("%d %d", &m, &n);

        int a[10] = {0};

        for (int i = m; i <= n; i++) {

        int k = i;

        while (k > 0) {

        int b = k % 10;

        if (b == 0) {

        a[0]++;

        } else if (b == 1) {

        a[1]++;

        } else if (b == 2) {

        a[2]++;

        } else if (b == 3) {

        a[3]++;

        } else if (b == 4) {

        a[4]++;

        } else if (b == 5) {

        a[5]++;

        } else if (b == 6) {

        a[6]++;

        } else if (b == 7) {

        a[7]++;

        } else if (b == 8) {

        a[8]++;

        } else if (b == 9) {

        a[9]++;

        }

        k /= 10;

        }

        }

        for (int k = 0; k <= 9; k++) {

        printf("%d ", a[k]);

        }

        return 0;

        }

        • 1
          @ 2025-11-26 15:05:36
          #include <stdio.h>
          int main(){
              int a,b,c,d[10]={0},e;
              scanf("%d %d",&a,&b);
              for(int i=a;i<=b;i++){
                  int temp=i;
                  while(temp!=0){
                  c=temp%10;
                  for(e=0;e<10;e++){
                      if(c==e)d[e]++;
                  }
                  temp/=10;
                  }
              }
              for(int i=0;i<10;i++){
                  printf("%d ",d[i]);
              }
          }
          
          • 0
            @ 2026-4-19 15:55:51
            #include <bits/stdc++.h>
            using namespace std;
            int main(){
                int m,n;
                cin>>m>>n;
                int num[10]={0,0,0,0,0,0,0,0,0,0};
                for(int j=m;j<=n;j++){
                for(int i=0;i<=9;i++){
                    int temp=j;
                    int a;
                    while(temp!=0){
                        a=temp%10;
                        temp=temp/10;
                        if(a==i){
                            num[i]++;
                        }
                    }
                }
                }
                for(int i=0;i<=9;i++){
                    cout<<num[i]<<' ';
                }
                return 0;
            }
            
            • 0
              @ 2025-9-18 22:22:33

              直接暴力,不会 数位 dp 的我太菜了😭

              from math import sqrt,ceil,gcd,log;re=lambda:map(int,input().strip().split())
              a = [0] * 10
              m, n = re()
              for i in range(m, n + 1):
                  i = str(i)
                  for j in i:
                      j = int(j)
                      a[j] += 1
              print(*a)
              
              • 0
                @ 2025-1-5 11:59:14
                #include<stdio.h>
                #include<iostream>
                const int N=10;
                int f[N];
                using namespace std;
                int main()
                {
                int m,n;
                cin>>m>>n;
                for(int i=m;i<=n;i++)
                {
                while(i>0)
                {
                int t=i%10;
                f[t]++;
                i=i/10;
                }
                }
                for(int i=0;i<10;i++)
                {
                cout<<f[i]<<" ";	
                }
                return 0;
                }
                错误在于我用i直接去操作,你应该赋值一个临时变量去操作,在循环次数的控制上应该用N-M这个条件,这个题这样写侥幸ac,请看下面ALEX大佬写的控制条件🚀️
                
                • 1

                信息

                ID
                101
                时间
                1000ms
                内存
                256MiB
                难度
                4
                标签
                (无)
                递交数
                620
                已通过
                291
                上传者