首页 > 分享 > C语言重来29:例题赏析——水仙花数

C语言重来29:例题赏析——水仙花数

我们先来看一下这个程序的题目:

水仙花数是指一个N位的正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1^3+5^3+3^3.本题要求编写程序,计算所有的N位水仙花数,
输入格式: 输入在一行中给出一个正整数N(3<=N<=7).
输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。

我们来看一下代码:

#include<stdio.h>

int main()

{

int n;

scanf_s("%d", &n);

int first = 1;

int i = 1;

while (i < n)

{

first *= 10;

i++;

}

//printf("first=%dn", first);判断前面写的i<n的这个终止条件是否正确。

//在这里我们需要便利它输入的那个位数的所有数字。

i = first;

while (i < first * 10)

{

int t=i;//用来记录这个i。

int sum = 0;//用来记录每一次的结果的n次幂的加和。

do

{

int d = t % 10;

t /= 10;

//这块在来用一个循环来进行几次幂的计算。

int p = 1;//负责计算每一次的几次幂为多少。

int j = 0;//用来计算算了多少次幂。

while (j < n)

{

p *= d;//每一次的幂次的计算。

j++;

}

sum += p;

} while (t > 0);

if (sum ==i)

{

printf("%dn", i);

}

i++;

}

return 0;

}

相关知识

C语言:输出所有的水仙花数
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
C语言编写水仙花数
水仙花数C语言代码优化
水仙花数,C语言
【C语言】求水仙花数(完整代码)
C语言判断水仙花数
判断一个数是否为水仙花数 (C语言)
C语言3位~7位水仙花数(加强版)
C语言入门:判断水仙花数(100~999)

网址: C语言重来29:例题赏析——水仙花数 https://m.huajiangbk.com/newsview391215.html

所属分类:花卉
上一篇: c语言学习
下一篇: 蓝桥杯练习【数论基础】——水仙花