水仙花数(Narcissistic number)又称为自恋数、自幂数,是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:1^3 5^3 3^3 = 153。
在C言语中,咱们能够经过编写一个程序来找出一切的水仙花数。以下是一个简略的C言语程序,用于找出一切的三位数水仙花数:
```cinclude
int main { int num, originalNum, remainder, result = 0, n = 0;
printf; for { originalNum = num; result = 0; while { remainder = originalNum % 10; result = remainder remainder remainder; originalNum /= 10; } if { printf; } }
return 0;}```
这段代码的作业原理如下:
1. 咱们首要界说了一个循环,它遍历一切的三位数(从100到999)。2. 关于每个数字,咱们初始化`result`为0,然后核算它的每个位上数字的立方和。3. 咱们经过`remainder`变量获取当时数字的最终一位,并将其立方加到`result`中。4. 咱们经过除以10来移除当时数字的最终一位。5. 当`originalNum`变为0时,循环完毕。6. 假如`result`等于原始数字`num`,则咱们找到了一个水仙花数,并将其打印出来。
这个程序只会找出三位数的水仙花数。假如你想要找出更多位数的水仙花数,你需要对程序进行相应的调整。
什么是水仙花数?
水仙花数,又称为阿姆斯特朗数,是一个特别的数学概念。它指的是一个n位数(n>3),其每个位上的数字的n次幂之和等于它本身。例如,153是一个三位数的水仙花数,由于1^3 5^3 3^3 = 153。
水仙花数的发现与前史
水仙花数的概念最早能够追溯到17世纪,由英国数学家约翰·哈里森提出。这个概念因其共同的性质而遭到数学爱好者的重视。跟着时刻的推移,人们发现水仙花数不仅仅存在于三位数中,还能够扩展到四位数、五位数等。
水仙花数的核算方法
要核算一个数是否为水仙花数,咱们能够依照以下过程进行:
确定要查看的数的位数n。
将这个数分解为各个位上的数字。
核算每个位上数字的n次幂之和。
将核算得到的和与原数进行比较。
假如持平,则该数为水仙花数;不然,不是。
水仙花数的C言语完成
下面是一个运用C言语完成水仙花数检测的简略示例程序:
```c
include
include
int isNarcissistic(int number) {
int originalNumber = number;
int sum = 0;
int n = 0;
int temp = number;
// 核算位数
while (temp != 0) {
n ;
temp /= 10;
}
temp = number;
// 核算每个位上数字的n次幂之和
while (temp != 0) {
int digit = temp % 10;
sum = pow(digit, n);
temp /= 10;
}
// 比较和原数是否持平
return sum == originalNumber;
int main() {
int number;
printf(\
未经允许不得转载:全栈博客园 » c言语水仙花数,什么是水仙花数?