您的位置:首页 >社会动态 > 每日快讯 >

用c语言编写水仙花数

水仙花数(Narcissistic number),也被称为阿姆斯特朗数,是指一个n位正整数,其各位数字的n次幂之和等于该数本身。例如,153是一个水仙花数,因为\(1^3 + 5^3 + 3^3 = 153\)。

在C语言中,我们可以编写一个程序来找出所有三位数范围内的水仙花数。下面是一个简单的实现示例:

```c

include

include

int main() {

int num, originalNum, remainder, n = 0;

// 计算数字的位数

printf("三位数范围内的水仙花数:\n");

for(num = 100; num <= 999; num++) {

originalNum = num;

while (originalNum != 0) {

originalNum /= 10;

++n;

}

originalNum = num;

int sum = 0;

// 计算每位数字的n次幂之和

while (originalNum != 0) {

remainder = originalNum % 10;

sum += pow(remainder, n);

originalNum /= 10;

}

// 如果结果等于原数,则为水仙花数

if (sum == num) {

printf("%d\n", num);

}

// 重置变量

n = 0;

}

return 0;

}

```

这段代码首先定义了一个循环来遍历从100到999的所有三位数。对于每一个数,我们先计算它的位数n,然后计算每一位数字的n次幂之和,并将这个和与原始数字进行比较。如果它们相等,则该数字就是一个水仙花数。

编译并运行上述代码后,你会看到输出如下:

```

三位数范围内的水仙花数:

153

370

371

407

```

这三个数是三位数范围内仅有的水仙花数。通过这个程序,我们可以轻松地找到指定范围内的所有水仙花数。这样的程序不仅有助于理解水仙花数的概念,还展示了如何使用C语言中的循环、条件语句以及基本数学运算来解决问题。

免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!