0
已解决
王光裕
资深光能
资深光能
1432 计数问题
题目描述 Description
试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1
到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
输入描述 Input Description
输入格式:
输入文件名为 count.in。
输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。
输出描述 Output Description
输出格式:
输出文件名为 count.out。
输出共 1 行,包含一个整数,表示 x 出现的次数。
样例输入 Sample Input
输入样例#1:
11 1
样例输出 Sample Output
输出样例#1:
4
数据范围及提示 Data Size & Hint
对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
0
已采纳
张睿杰
初级天翼
初级天翼
这题就是把每个数拆分,然后用数组统计而已,一般写法不会超时
具体程序如下
cin>>n>>x;//读入数据
for(int i=1;i<=n;i++)//循环从1到n
{
int h=i;//因为要分解,所以不能是循环变量,定义一个临时存数
while(h!=0)//分解当时这个数
{
a[h%10]++;//这个很巧妙,仔细看
h/=10;//除10
}
}
cout<<a[x]<<endl;//最后输出就可以了
定义
int a[10];//10个数码,从0到9
int n,x;
0
王学庚
初级光能
初级光能
cin>>n>>e; for(i=e;i<=n;i++) { t=i; while(t!=0) { if(t%10==e) s++; t=t/10; } } cout<<s;
核心
s要赋值0
望采纳
0
0
刘景程
新手光能
新手光能
{
long long n,i,x,b,c,t=0;
输入>>n>>x;//输入范围与要查的数字;
for(i=1;i<=n;i++)//一到n进行循环;
{
b=i;//为了不改变i的值,就把i赋值给一个数;
while(b!=0)//如果b不等于0,继续循环;
{
c=b%10;//求是否是x,是的话计数器加一;
b=b/10;//求下一个数字是否为x;
if(c==x) t++;//计数器加一;
}
}
cout<<t<<endl;//输出计数器的数字;
return 0;//结束
}
0