云服务器免费试用

c语言水仙花数的求法是什么

服务器知识 0 1372

C语言中求水仙花数的方法是利用循环和条件判断进行计算。水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。

c语言水仙花数的求法是什么

具体的求法如下:

  1. 使用一个循环,从100开始逐个判断每个数是否是水仙花数。
  2. 对于每个数,首先获取该数的位数n。
  3. 将该数拆分为各个位上的数字,并计算每个数字的n次幂。
  4. 将各个数字的n次幂相加,得到一个和。
  5. 判断该和是否等于原数,如果相等,则说明该数是水仙花数,可以输出或保存起来。

示例代码如下:

#include <stdio.h>
#include <math.h>

int main() {
    int n, num, digit, sum;
    
    printf("水仙花数有:");
    
    for (num = 100; num < 1000; num++) {
        n = 0;
        sum = 0;
        int temp = num;
        
        // 获取位数n
        while (temp != 0) {
            temp /= 10;
            n++;
        }
        
        temp = num;
        
        // 分解并计算每个位上的数字的n次幂
        while (temp != 0) {
            digit = temp % 10;
            sum += pow(digit, n);
            temp /= 10;
        }
        
        // 判断是否是水仙花数
        if (sum == num) {
            printf("%d ", num);
        }
    }
    
    return 0;
}

运行结果为:

水仙花数有:153 370 371 407

表示100到999之间的水仙花数为153、370、371和407。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c语言水仙花数的求法是什么
本文地址: https://solustack.com/70756.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。