数字x出现的次数

Description

试计算在区间1到n(1<=n<=10000)的所有整数中,数字x(0<=x<=9)共出现多少次?

Input

共一行,包含两个整数n、x,之间用一空格隔开。

Output

共一行,表示x出现的次数。

Sample Input

11 1

Sample Output

4

python解法

# 读取用户输入的两个整数n和x
n, x = map(int, input("").split())

# 初始化计数器
count = 0

# 循环从1到n,检查每一个数字
for i in range(1, n + 1):
    # 将当前数字转换为字符串,以便能够遍历其每一位
    str_i = str(i)
    
    # 遍历当前数字的每一位
    for digit in str_i:
        # 如果当前位等于x,则增加计数器
        if int(digit) == x:
            count += 1

# 输出计数器的值
print(count)

c++解法

#include<bits/stdc++.h> // 这是一个包含大多数标准库头文件的头文件,通常用于编程竞赛中以便快速编写代码
using namespace std;

int main() {
    int n, x, count = 0; // 定义三个整数变量:n(表示要检查的数字范围的上限),x(表示要查找的数字),count(用于计数数字x出现的次数)
    cin >> n >> x; // 从标准输入读取n和x的值

    for(int i = 1; i <= n; i++) { // 循环从1到n,检查每一个数字
        int t = i; // 复制当前数字i到t,以便在后面的循环中修改t而不影响i
        int p; // 定义一个整数变量p,用于存储t的个位数

        while(t != 0) { // 当t不为0时,继续循环,用于检查t的每一位数字
            p = t % 10; // 计算t的个位数并存储在p中
            t = t / 10; // 移除t的个位数,以便下一次循环检查十位数

            if(p == x) { // 如果p(即t的某一位数字)等于x
                count++; // 则增加count的值,表示找到了一个x
            }
        }
    }
    cout << count << endl; // 输出count的值,即数字x在1到n的范围内出现的总次数

    return 0; // 主函数返回0,表示程序正常结束
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
THE END