题目:假设随机输入一个数字n,m(其中n为大于1的随机的一个数字,m为0-9之间的随机数)判断从1到n中,出现了多少次m;
例如:输入 20 2 (即n=20,m=2)
输出 3(代表了1-20中出现了3次2,即2,12,20)
输入 10 9
输出 1
#include<iostream>
using namespace std;
int main()
{
int sum=0; //出现m的次数
int i,n,m;
cin>>n; //输入n
cin>>m; //输入m
for(i=1;i<=n;i++)
{
int k=i;
while(k!=0) //循环条件是k!=0
{
if(k%10==m) //k对10取余,例如303对10取余为3
sum++; //即取余后的数字如果与m相等则次数加一
k=k/10; //每次对k除以10,因为k的类型是int,所以除以10会自动取整(不是四舍五入,是直接不要小数),例如909/10结果为90
}
}
cout<<sum; //输出m出现的次数
return 0;
}
注意:
1. 区分取余和除法
2. 一个int类型的数,除以一个数,除不尽时,会自动舍弃小数(直接舍弃,不是舍五入),使之除以一个数后仍然保持其int类型。