给定两个整数 a 和 b,求 a 和 b 之间的所有数字中 0∼9 的出现次数。 例如,a=1024,b=1032,则 a 和 b 之间共有 9 个数如下: 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出现 10 次,1 出现 10 次,2 出现 7 次,3 出现 3 次等等… 输入格式 输入包含多组测试数据。 每组测试数据占一行,包含两个整数 a 和 b。 当读入一行为 0 0 时,表示输入终止,且该行不作处理。 输出格式 每组数据输出一个结果,每个结果占一行。 每个结果包含十个用空格隔开的数字,第一个数字表示 0 出现的次数,第二个数字表示 1 出现的次数,以此类推。 数据范围 0<a,b<100000000
时间: 2024-04-08 09:35:13 浏览: 116
您需要编写一个程序来计算给定两个整数a和b之间的数字0-9的出现次数。您可以按照以下步骤进行实现:
1. 读取输入的两个整数a和b。
2. 创建一个长度为10的数组count,用于存储数字0-9的出现次数,初始值都设置为0。
3. 使用一个循环,从a遍历到b,对于每个数字num,执行以下步骤:
- 将num转换为字符串形式,便于对每个位上的数字进行操作。
- 使用另一个循环遍历num的每个字符digit。
- 将digit转换为数字,并将count数组对应位置的值加1。
4. 打印count数组的内容,每个数字之间用空格隔开。
5. 重复步骤1-4,直到输入的两个整数均为0。
下面是一个示例的C程序实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
int a, b;
while (1) {
scanf("%d %d", &a, &b);
if (a == 0 && b == 0) {
break;
}
int count[10] = {0};
for (int num = a; num <= b; num++) {
char str[10];
sprintf(str, "%d", num);
for (int i = 0; i < strlen(str); i++) {
int digit = str[i] - '0';
count[digit]++;
}
}
for (int i = 0; i < 10; i++) {
printf("%d ", count[i]);
}
printf("\n");
}
return 0;
}
```
您可以将该代码保存为一个C文件,使用C编译器进行编译并运行。每次输入一组测试数据,直到输入的两个整数均为0为止。程序将输出每组数据的结果,即数字0-9的出现次数。
阅读全文