C++用do-while函数找出0-1000以内的所有3721数并用空格隔开
时间: 2024-12-10 07:56:16 浏览: 5
高质量c++编程(林锐).pdf
在C++中,`do-while`循环常用于需要先执行一次再检查条件的情况。要找出0到1000范围内的所有"3721"数(即每个数字相加等于其本身的数),我们可以编写如下的代码:
```cpp
#include <iostream>
int main() {
int number = 0;
std::string output;
do {
// 将当前数字转换为字符串便于处理
std::string num_str = std::to_string(number);
// 检查每一位的和是否等于整个数字
bool is_divisible = true;
int sum = 0;
for (char digit : num_str) {
sum += digit - '0'; // 减去字符'0'对应的数值,得到整数
if (sum != number) {
is_divisible = false; // 如果某一位的和不是当前数,中断检查
break;
}
}
// 如果是3721数,则加入输出,并保留空格
if (is_divisible && sum == number) {
if (!output.empty()) {
output += " ";
}
output += num_str;
}
// 更新数字
number++;
} while (number <= 1000);
std::cout << "0-1000范围内的所有3721数:" << output << std::endl;
return 0;
}
```
这个程序会打印出所有满足条件的3721数,每个数之间用空格隔开。
阅读全文