能不能用C++写一段水仙花数
当然可以,以下是一段用C++写的水仙花数程序:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n, m, i, j, k, s;
cout << "请输入数字范围(例如1到1000):";
cin >> n >> m;
for (i = n; i <= m; i++) {
s = 0;
j = i;
k = 0;
while (j > 0) {
k++;
j /= 10;
}
j = i;
while (j > 0) {
s += pow(j % 10, k);
j /= 10;
}
if (s == i) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
这段程序可以让用户输入数字范围,然后遍历这个范围内的所有数字,判断每个数字是否为水仙花数,如果是则输出。其中,计算一个数字的位数的方法是使用循环将这个数字不断除以10,直到它变成0,这时候除的次数就是它的位数。计算一个数字的各个位数的k次方相加的方法是使用循环将这个数字不断除以10,并取余数,然后将余数的k次方加起来即可。最后,比较这个结果和原数字是否相等即可判断它是否为水仙花数。
原文地址: https://www.cveoy.top/t/topic/qmy 著作权归作者所有。请勿转载和采集!