试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在1到11中,即在1,2,3,4,5,6,7,8,9,10,11中,数字1出现了4次。
2个整数n,x,之间用一个空格隔开。
1个整数,表示x出现的次数。
11 1
4
对于100%的数据,1≤n≤1,000,000,0≤x≤9。
#include <iostream>
using namespace std;
int a[1000005];
int dp(int n, int x) {
a[n]=(n%10==x)?a[n/10]+1:a[n/10];
return a[n];
}
int main() {
int n,x,sum=0;
cin>>n>>x;
for(int i=1;i<=n;++i)
sum+=dp(i,x);
cout<<sum<<endl;
return 0;
}
原文:https://www.cnblogs.com/yuzec/p/12529662.html