水题
题目连接 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3666 答案很简陋待优化。 #include "stdio.h" #include "string.h" #define maxn 40000 int main() { int s[maxn]; int total[10]; int T,n,j,c,num; scanf("%d", &T); while (T--) { scanf("%d", &n); for (int i = 0; i < 10; i++) { total[i] =0; } j = 0; c = 0; num = 0; for (int i = 1; i < n + 1; i++) { num = i; while (num) { c = num % 10; s[j++] = c; num = num / 10; } } for (int k = 0; k < j; k++) { switch (s[k]) { case 0: total[0]++; break; case 1: total[1]++; break; case 2: total[2]++; break; case 3: total[3]++; break; case 4: total[4]++; break; case 5: total[5]++; break; case 6: total[6]++; break; case 7: total[7]++; break; case 8: total[8]++; break; case 9: total[9]++; break; default: break; } } for (int i = 0; i < 10; i++) { if(i == 9) printf("%d", total[i]); else printf("%d ", total[i]); } printf("\n"); } return 0; }