小学奥数(上)
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 <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,m,i,j,k;
int sum=0;
while (~scanf("%d %d",&n,&m))
{
sum=0;
for(i=1; i<=n; i++)
{
j=i;
while (j!=0)
{
k=j%10;
if(k==m)
sum++;
j=j/10;
}
}
printf("%d\n",sum);
}
return 0;
}