题解 P1239 【计数器】
judgejudge · · 题解
最短代码!!!
本题并没有这么难,我们可以利用类似于散列法来解决:
首先,我们把从1到n的数一位位来%10,把余数储存起来,最后输出a[0]到a[9]的余数。
下面是AC代码:
#include <iostream>
using namespace std;
int a[10000];
int main(){
int i,j,k,n,s1,s2;
cin>>n;
for(i=1;i<=n;i++){
k=i;
while(k>0){
s1=k%10;
a[s1]++;
k/=10;
}
}
for(i=0;i<=9;i++)cout<<a[i]<<endl;
}
求管理员大佬给过!!!