题目描述:

试计算在区间 1 到 n 的所有整数中,数字 x(0≤x≤9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。

输入:2 行,分别包括 2 个整数 n,x。

输出:1 个整数,表示 x 出现的次数。

解析:

这一题难度不大,可以利用整数的特点以及字符串的特点来做。

方法1.利用整数的特点:循环整除取余数,并判断

1>遍历1-n,得到每一个整数;

2>对整数采用循环整除取余数的方法得到每一位上的数字;

3>判断每一位数是否等于x,是则进行累加;

4>输出最终结果;

参考程序:

n=int(input())
x=int(input())
c=0
for i in range(1,n+1):
    t=i
    while t!=0:
        p=t%10
        t=t//10
        if p==x:
            c+=1
print(c)

方法2.直接将数字输入为字符串,然后判断子串中某数字出现的次数

1>遍历1-n,得到每一个整数;

2>将整数转换成字符串

3>遍历这个转换后的数字字符串,判断字符与x是否相等,相同则累加

4>输出结果

参考程序:

n=int(input())
x=input()
c=0
for i in range(1,n+1):
    t=str(i)
    for p in t:
        if p==x:
            c+=1
print(c)

本站内容未经许可,禁止任何网站及个人进行转载。