输入n,在1到n的范围内,满足每位数字都相同的数的和c++
时间: 2024-12-04 22:27:54 浏览: 10
armstrong.rar_微处理器开发_Visual_C++_
在C++中,计算1到n范围内的所有每位数字都相同的数的和,可以利用循环遍历每一个可能的位数,然后生成并累加符合条件的数。以下是实现该功能的一个简单示例:
```cpp
#include <iostream>
using namespace std;
int sumOfDigits(int n) {
// 数字长度(只考虑一位数到两位数)
int length = (int)log10(n) + 1;
long long result = 0; // 使用long long防止溢出
for (int i = 1; i <= length; i++) { // 从1到每一位数
// 构造每位都是i的数
string numStr = string(i, '1');
long long num = stoll(numStr); // 转换字符串为整数
// 如果当前数在范围内,则累加
if (num <= n) {
result += num;
} else {
break; // 结束循环,因为一旦超过n,后面的数都不需要再计算了
}
}
return result;
}
int main() {
int n;
cout << "请输入一个正整数n: ";
cin >> n;
cout << "1到" << n << "内每位数字都相同的数的和为: " << sumOfDigits(n) << endl;
return 0;
}
```
阅读全文