题目描述
试计算在区间 111 到 nn n的所有整数中,数字x(0≤x≤9) x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 111到11 11 11中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 111 出现了 444 次。
输入输出格式
输入格式:
222个整数n,xn,xn,x,之间用一个空格隔开。
输出格式:
111个整数,表示xxx出现的次数
输入输出样例
11 1
输出样例
4
对于 100%100\%100%的数据,1≤n≤1,000,000,0≤x≤91≤ n ≤ 1,000,000,0 ≤ x ≤ 91≤n≤1,000,000,0≤x≤9。
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
string itos(int i)
{
stringstream s; //转化
s << i;
return s.str();
}
int main()
{
int n,len,x=0;
char ch;
cin>>n>>ch;
while(n)
{
string ss=itos(n);
len=ss.size();
for(int i=0;i<len;i++)
if(ss[i]==ch)
x++;
n--;
}
cout<<x;
}