小学奥数(上)
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
对于一个数字,我们可以直观的了解到它所含有的数字,例如: 3243中包含1个2、2个3、1个4。
那么,给你一个数n,求从1到n之间的所有这些数字中,总共包含多少个m。
输入
多组输入,直到文件结束。输入中包含两个数n(1≤n≤10000),m(0≤m≤9)。
输出
输出1到n之间所有数字中,包含m的总数。
示例输入
20 1 50 0
示例输出
12 5
提示
对于第一组10 1来说,1到10之间有1、10、11、12、13、14、15、16、17、18、19这11个数中包含12个1,所以结果为12。
对于第二组50 0来说,1到50之间有10、20、30、40、50包含0,所以结果为5。
动动脑筋!!
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <queue>
#define inf 88888888
using namespace std;
int main()
{
int n,m;
int i,j;
while(scanf("%d %d",&n,&m)!=EOF)
{
int sum=0;
for(i=1; i<=n; i++)
{
j=i;
while(j)
{
if(j%10==m)
{
sum++;
}
j/=10;
}
}
printf("%d\n",sum);
}
return 0;
}