本文主要是介绍PTA- - -个位数统计(C语言),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Hello,好久没更新啦,今天给大家讲解一下PTA平台上面的“个位数统计”这道题吧~
题目是要统计一个数字每个位上数字出现的次数。下面是一个解决方案的思路和相应的 C 语言代码:
思路:
- 初始化一个大小为10的数组,用于计数每个数字(0-9)出现的次数。
- 读取输入的数字N作为字符串,这样可以处理超长数字并逐个字符检查。
- 遍历字符串,将每个字符转换为整数索引,并在计数数组对应索引处递增。
- 遍历计数数组,按照题目要求的格式打印出现次数不为0的数字及其计数。
#include <stdio.h>
#include <string.h>int main() {char N[1001]; // 由于数字可能非常大,我们将其作为字符串读入int count[10] = {0}; // 初始化计数数组scanf("%s", N); // 读入数字字符串// 遍历数字字符串for (int i = 0; N[i] != '\0'; i++) {count[N[i] - '0']++; // 更新计数数组,'0'-'0' = 0, '1'-'0' = 1, ... '9'-'0' = 9}// 输出每个数字及其出现的次数for (int i = 0; i < 10; i++) {if (count[i] > 0) { // 只有当某个数字出现次数大于0时才打印printf("%d:%d\n", i, count[i]);}}return 0;
}
上面的代码首先读取输入的整数N作为一个字符串。之所以用字符串而不是整数类型,是因为题目提到N可以非常大,超过普通整数类型的存储范围。然后代码中使用count
数组对每个出现的数字进行计数。最后,代码遍历count
数组并打印出现次数。
您可以使用这个代码,并根据您编程环境的需要进行必要的调整。然后编译并运行以检查它是否符合题目要求。希望能够帮助到小伙伴提供更多的解题思路哦,关注叶秋学长不迷路,学长带你们上高速💕
这篇关于PTA- - -个位数统计(C语言)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!