UVA 1225 Digit Counting(c++)(模拟)

2018-07-23 05:30:58来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

题目大意就是将前n个数字按顺序写在一起,然后统计这整个由数字组成的串中0-9各出现了几次。代码如下,比较容易理解。

#include <iostream>
#include <string>
#include <cstdio>
#include <cstring>
#define maxn 1000000+10
#include <ctype.h>
using namespace std ;
 
int main(){
    int n ;
    cin >> n ;
    while ( n -- ){
        int k ;
        cin >> k ;
        int num_1=0,num_2=0,num_3=0,num_4=0,num_5=0,num_6=0,num_7=0,num_8=0,num_9=0,num_0=0 ;
        for ( int i = 1 ; i <= k ; i ++ ){
            int t = i ;
            while( t > 0 ){
                int temp = t % 10 ;
                if ( temp == 1 ) num_1 ++ ;
                if ( temp == 2 ) num_2 ++ ;
                if ( temp == 3 ) num_3 ++ ;
                if ( temp == 4 ) num_4 ++ ;
                if ( temp == 5 ) num_5 ++ ;
                if ( temp == 6 ) num_6 ++ ;
                if ( temp == 7 ) num_7 ++ ;
                if ( temp == 8 ) num_8 ++ ;
                if ( temp == 9 ) num_9 ++ ;
                if ( temp == 0 ) num_0 ++ ;
                t /= 10 ;
            }
        }
        printf("%d %d %d %d %d %d %d %d %d %d\n",num_0,num_1,num_2,num_3,num_4,num_5,num_6,num_7,num_8,num_9) ;
    }
    return 0 ;
}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:洛谷P2761 软件补丁问题(状压DP,SPFA)

下一篇:洛谷P2774 方格取数问题(最小割)