C++用do-while函数找出n以内的所有3721数
时间: 2024-12-10 13:54:39 浏览: 5
C++中的`do-while`循环通常用于需要先执行一次再判断条件的情况,适合用来寻找特定类型的数字序列,比如3721数。3721数是指这样的整数,它的每位数字都不小于前一位,并且相邻两位数字之差不超过1。以下是一个简单的示例,展示如何使用`do-while`循环找到给定范围(n以内)内的所有3721数:
```cpp
#include <iostream>
using namespace std;
bool is3721(int num) {
int prev = num % 10;
int temp = num;
while (temp > 0) {
int curr = temp % 10;
if (curr < prev || abs(curr - prev) > 1) {
return false;
}
prev = curr;
temp /= 10;
}
return true;
}
int main() {
int n;
cout << "请输入一个正整数n: ";
cin >> n;
int start = 1; // 初始值从1开始
do {
if (is3721(start)) {
cout << start << " ";
}
start++;
} while (start <= n);
cout << endl << "在1到" << n << "范围内,共有以下3721数:" << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个辅助函数`is3721`来检查一个数是否是3721数。然后在`main`函数中,使用`do-while`循环遍历1到n的所有数,如果遇到满足条件的3721数就打印出来。
阅读全文