C语言程序设计入门——水仙花数

编程知识 行业动态 更新时间:2024-06-13 00:21:41

·水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于他本身。例如:153=13 +53 +33 ,本题要求编写程序,计算所以N位的水仙花数。

输入格式:

输入在一行中给出一个正整数N(3<=N<=7)

输出格式:

按递增顺序输出所有N位水仙花数,每个数字占一行。

输入样例:

3

输出样例:

153
370
371
407

#include <stdio.h>

int main()

{	
int n;
scanf("%d",&n);
int first=1;
int i=1;
while(i<n){
	first *= 10;
	i++;				
}
//为了得到一个三位数first
//printf("first=%d\n",first); //查看当前first的值
//遍历100-999

i = first;

while (i<first*10){

int t = i;			//分解i,防止i被破坏,用t
int sum = 0;

do{					//do循环可以处理0的问题,while处理不了
int d = t%10;	//d是t的个位	
					/*	do是先执行指定语句,最后判断循环条件。
				    while是先判断循环条件,然后执行指定语句。
					所以,在循环内语句相同时,如果循环判断条件
					为0,do会执行一遍语句,而while则不会执行。*/
t/=10; 
int p = 1;
int j = 0;
while(j<n){

	p*=d;
	j++;
}
sum += p;
}while(t>0);

if (sum == i){

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

i++;

}

return 0;
}

更多推荐

C语言程序设计入门——水仙花数

本文发布于:2023-04-01 00:51:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/674094c385693cd8d731441da0f2e923.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:水仙花   入门   语言程序设计

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!