当然可以,以下是一段用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次方加起来即可。最后,比较这个结果和原数字是否相等即可判断它是否为水仙花数。

能不能用C++写一段水仙花数

原文地址: https://www.cveoy.top/t/topic/qmy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录