UVA 1225 Digit Counting(c++)(模拟)
程序员文章站
2022-06-24 11:59:22
题目大意就是将前n个数字按顺序写在一起,然后统计这整个由数字组成的串中0-9各出现了几次。代码如下,比较容易理解。 ......
题目大意就是将前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 ; }
下一篇: Go语言实现的树形结构数据比较算法实例