C++ 统计数字1出现的次数 - 算法题解
"C++ 统计数字1出现的次数 - 算法题解"\n\n本文提供了一个C++程序,用于计算从1到n的整数中数字“1”出现的次数。\n\n问题描述\n\n给定一个十进制正整数n(1≤n≤10000),写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。\n\n示例\n\n例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。\n\n输入描述\n\n正整数n。1 ≤ n ≤ 10000。\n\n输出描述\n\n一个正整数,即“1”的个数。\n\nC++程序(简单)内容:\n\ncpp\n#include <iostream>\n#include <string>\nusing namespace std; \n\nint countOne(int n) {\n    int count = 0;\n    for (int i = 1; i <= n; i++) {\n        string numStr = to_string(i);\n        for (char c : numStr) {\n            if (c == '1') {\n                count++;\n            }\n        }\n    }\n    return count;\n}\n\nint main() {\n    int n;\n    cin >> n;\n    int result = countOne(n);\n    cout << result << endl;\n    return 0;\n}\n\n\n算法思路\n\n该程序使用循环遍历从1到n的所有整数,并逐个判断每个整数的各位数字是否为“1”。如果找到“1”,则计数器加1。最后返回计数器值,即“1”的个数。\n\n代码解释\n\n* countOne(int n)函数:该函数接受一个整数n作为参数,并返回从1到n的整数中数字“1”出现的次数。\n* for (int i = 1; i <= n; i++):循环遍历从1到n的每个整数。\n* string numStr = to_string(i):将整数i转换为字符串。\n* for (char c : numStr):循环遍历字符串中每个字符。\n* if (c == '1'):判断当前字符是否为“1”。\n* count++;:如果字符为“1”,则计数器加1。\n* return count;:返回计数器值。\n* main()函数:程序入口函数,从标准输入读取整数n,调用countOne()函数计算结果,并将结果输出到标准输出。\n\n优化建议\n\n该代码可以使用更简洁的算法来提高效率。例如,可以使用递归算法或动态规划算法来计算数字“1”出现的次数。\n\n总结\n\n本文提供了一个简单的C++程序,用于统计从1到n的整数中数字“1”出现的次数。该程序简单易懂,适合初学者学习使用。\n\n注意:  此代码只是一个简单的示例,您可能需要根据实际需求进行调整和优化。\n
原文地址: https://www.cveoy.top/t/topic/qjsN 著作权归作者所有。请勿转载和采集!