ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c语言(百合花)水仙花数的算法

2020-01-15 21:42:10  阅读:422  来源: 互联网

标签:百合花 int sum 算法 printf return main 水仙花


题目水仙花数是指该N位数的各位的N次方之和等于其本身;
先写出较为简单的三位水仙花数
代码如下:

#include<stdio.h>
int main()
{
	int i,t,n,sum;
    for(i = 100; i < 1000; ++i) {
        sum = 0;
        n = i;
        while(n) {
            t = n % 10;
            sum += t * t * t;
            n /= 10;
        }
        if(sum == i) printf("%d ",sum);
    }
    printf("\n");
    return 0;
}

运行结果:

153 370 371 407


Process exited after 0.1523 seconds with return value 0
请按任意键继续. . .

再尝试n位数:

#include<stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	//n=3;
	int first =1;
	int i=1;
	while(i<n){
		first *=10;
		i++;
	}
	//printf("first=%d\n",first);//检查first是否符合需求 
	i=first;
	int t=i;
	int sum=0;
	while(i<first*10){        //遍历100-999 
		
		
		do{                   //do while循环,0无影响 
			int d = t%10;
			t/=10;
			int p=d;
			int j=1;
			while (j<n){      //求个位数的n次 
				p*=d;
				j++;
			}
			sum+=p;
		}while(t>0);
		if(sum==i){
			printf("%d\n",i);
	
		}
	    i++;
	} 
	 return 0;
	
 } 

待完成.

Steven_Mmm 发布了3 篇原创文章 · 获赞 0 · 访问量 22 私信 关注

标签:百合花,int,sum,算法,printf,return,main,水仙花
来源: https://blog.csdn.net/qq_42765398/article/details/103996028

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有