vs水仙花数c语言代码,求水仙花数c语言代码怎么写

1e75452dfc7f5730c34a8b9c9517ed8f.png

求水仙花数c语言代码怎么写

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

下面是使用C语言求水仙花数的代码:#include

#include

void main()

{

int i,j,k,n;

printf("'water flower'number is:");

for(n=100;n<1000;n++)

{

i=n/100;/*分解出百位*/

j=n/10%10;/*分解出十位*/

k=n%10;/*分解出个位*/

if(n==i*i*i+j*j*j+k*k*k)

{

printf("%-5d",n);

}

}

printf("\n");

}

升级版:#include

#include

#include

int cube(const int n){

return n*n*n;

}

bool

isNarcissistic(const int n){

int hundreds=n/100;

int tens=n/10-hundreds*10;

int ones=n%10;

return cube(hundreds)+cube(tens)+cube(ones)==n;

}

int main(void){

int i;

for(i=100;i<1000;++i){

if(isNarcissistic(i))

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

}

return EXIT_SUCCESS;

}

更多C语言教程,请关注PHP中文网!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: #include <stdio.h> int main() { int n, a, b, c, sum; printf("输入一个三位数:"); scanf("%d", &n); a = n / 100; b = (n - a * 100) / 10; c = n % 10; sum = a * a * a + b * b * b + c * c * c; if (sum == n) printf("%d 是一个水仙花数。\n", n); else printf("%d 不是一个水仙花数。\n", n); return 0; } ### 回答2: 水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。 以下是一个C语言代码来判断一个数是否为水仙花数: ``` #include <stdio.h> int main() { int number, originalNumber, remainder, result = 0, n = 0; printf("请输入一个三位数:"); scanf("%d", &number); originalNumber = number; // 计算number的位数 while (originalNumber != 0) { originalNumber /= 10; ++n; } originalNumber = number; // 计算每个位数的n次幂之和 while (originalNumber != 0) { remainder = originalNumber % 10; result += pow(remainder, n); originalNumber /= 10; } // 判断是否为水仙花数 if (result == number) printf("%d 是一个水仙花数", number); else printf("%d 不是一个水仙花数", number); return 0; } ``` 在上面的代码中,我们首先读取一个三位数。接着,我们计算输入数的位数,并将其存储在变量n中。然后,我们计算每个位数的n次幂之和,并将结果存储在变量result中。最后,我们将结果与输入的数进行比较,以判断是否为水仙花数。如果相等,则输出"是一个水仙花数",否则输出"不是一个水仙花数"。 ### 回答3: 水仙花数,也称为自恋数或阿姆斯特朗数,是指一个n位数(n≥3),其每个位上的数字的n次幂之和等于本身。 以下是一个用C语言水仙花数判断程序: ```c #include <stdio.h> #include <math.h> int main() { int number, originalNumber, remainder, result = 0, n = 0; printf("请输入一个三位以上的整数:"); scanf("%d", &number); originalNumber = number; // 计算输入数字的位数 while (originalNumber != 0) { originalNumber /= 10; ++n; } originalNumber = number; // 计算每位数字的n次幂之和 while (originalNumber != 0) { remainder = originalNumber % 10; result += pow(remainder, n); originalNumber /= 10; } // 判断是否为水仙花数 if (result == number) { printf("%d 是水仙花数。\n", number); } else { printf("%d 不是水仙花数。\n", number); } return 0; } ``` 运行程序时,用户需要输入一个三位数以上的整数。程序会计算每位数字的n次幂之和,并判断是否等于输入的数字。如果相等,则输出“是水仙花数”,否则输出“不是水仙花数”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值