编程题统计数字怎么做

时间:2025-01-28 21:01:25 网络游戏

统计数字出现的次数是一个常见的编程问题,可以通过多种方法实现。下面我将介绍几种常见的方法,并提供相应的代码示例。

方法一:使用数组统计每个数字出现的次数

我们可以使用一个固定大小的数组来统计每个数字(0-9)出现的次数。这种方法适用于统计单个数字在一系列数字中出现的次数。

```c

include

int main() {

int count = {0}; // 初始化计数数组

int num, digit;

printf("请输入一个整数: ");

scanf("%d", &num);

while (num > 0) {

digit = num % 10; // 获取最后一位数字

count[digit]++; // 对应数字计数加1

num /= 10; // 去掉最后一位数字

}

printf("数字出现的次数: ");

for (int i = 0; i < 10; i++) {

printf("%d ", count[i]);

}

printf("\n");

return 0;

}

```

方法二:使用字符串处理统计数字出现的次数

如果输入的是一串数字字符,我们可以先将这些字符转换为整数,然后使用类似上述数组的方法来统计每个数字出现的次数。

```c

include

include

include

int main() {

char input;

int count = {0}; // 初始化计数数组

int num, digit;

printf("请输入一串数字字符: ");

fgets(input, sizeof(input), stdin);

input[strcspn(input, "

")] = 0; // 去掉换行符

num = atoi(input); // 将字符串转换为整数

while (num > 0) {

digit = num % 10; // 获取最后一位数字

count[digit]++; // 对应数字计数加1

num /= 10; // 去掉最后一位数字

}

printf("数字出现的次数: ");

for (int i = 0; i < 10; i++) {

printf("%d ", count[i]);

}

printf("\n");

return 0;

}

```

方法三:使用递推关系统计页码中数字出现的次数

对于更复杂的问题,例如统计一本书的页码中每个数字出现的次数,我们可以使用递推关系来解决这个问题。

```c

include

void countDigits(int n, int count[]) {

if (n == 0) return;

count[n % 10]++;

countDigits(n / 10, count);

}

int main() {

int count = {0}; // 初始化计数数组

int n;

printf("请输入书的总页数: ");

scanf("%d", &n);

countDigits(n, count);

printf("数字出现的次数: ");

for (int i = 0; i < 10; i++) {

printf("%d ", count[i]);

}

printf("\n");

return 0;

}

```

方法四:使用动态规划统计数字出现的次数

对于更复杂的问题,例如统计一个范围内所有整数中某个特定数字出现的次数,我们可以使用动态规划的方法来解决这个问题。