刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
解答思路:
要计算从 1 到 n 的正数中数字 1 出现的次数,我们可以按照数位来分别计算。具体来说,我们可以计算每一位上出现 1 的次数,然后将这些次数相加。例如,在个位、十位、百位等位置上,数字 1 出现的概率是不同的。因此,我们需要根据数字的位数和当前位数的值来计算 1 的出现次数。我们可以使用 C/C++ 的循环和数学计算来实现这个功能。
最优回答:
以下是使用 C++ 实现的一个示例代码:
#include <iostream>
using namespace std;
int countOnes(int n) {
int count = 0; // 用于记录数字 1 出现的次数
int temp = n; // 用于临时存储数字 n 的值
while (temp > 0) { // 循环遍历数字的每一位
count += (temp % 10 == 1) + (temp / 10 * (n % 10 == 1)); // 计算当前位上出现数字 1 的次数
temp /= 10; // 移动到下一位
n /= 10; // 更新 n 的值,保证 n 的位数不变
}
return count; // 返回结果
}
int main() {
int n; // 输入的数字范围的上限
cout << "请输入一个正整数 n:" << endl;
cin >> n;
cout << "从 1 到 " << n << " 的正数中数字 1 出现的次数为:" << countOnes(n) << endl;
return 0;
}
本文链接:请编写一段C/C++代码,计算在从1到n的正数中数字1出现的总次数。
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
