首页 > 分享 > 循环

循环

最新推荐文章于 2024-09-20 20:19:17 发布

藏红 于 2015-03-01 19:04:39 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

题目来源:

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

输入格式:

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

输出格式:

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

输入样例:

3

输出样例:

153 370 371 407

解法1:

import java.io.IOException;

import java.text.DecimalFormat;

import java.text.ParseException;

import java.util.Scanner;

public class Main {

public static void main(String[] args)

{

Scanner scanner = new Scanner(System.in);

int N;

N= scanner.nextInt();

StringBuilder startsb = new StringBuilder();

StringBuilder endsb = new StringBuilder();

startsb.append("1");

endsb.append("9");

for(int i=1 ;i<N;i++)

{

startsb.append("0");

endsb.append("9");

}

long start = Integer.parseInt(startsb.toString());

long end = Integer.parseInt(endsb.toString());

for(long i=start;i<=end ;i++)

{

if(isNarcissisticNumber(i, N))

{

System.out.println(i);

}

}

}

public static boolean isNarcissisticNumber(long number, int N)

{

long temp = number;

long sum =0L;

for(int i=0;i<N;i++)

{

long low = number%10;

number = number/10;

sum = sum+ (long)Math.pow(low, N);

}

if(sum==temp)

return true;

return false;

}

}

结果正确,但是会超时

解法2 : 网上找的

#include<stdio.h>

int getPowSum(int n,int pow);

int main()

{

int N;

scanf("%d",&N);

int from=1,to=1,i;

for(i=1;i<N;i++)

from=from*10;

to=from*10-1;

for(i=from;i<to;i++)

if(getPowSum(i,N)==i)

printf("%dn",i);

}

int getPowSum(int n,int pow)

{

int sum=0;

int shang=n/10;

int yushu=n%10;

int i,temp;

while(shang!=0 || yushu!=0)

{

temp=1;

for(i=0;i<pow;i++)

temp=temp*yushu;

sum=sum+temp;

yushu=shang%10;

shang=shang/10;

}

return sum;

}

参考:http://blog.csdn.net/u011415955/article/details/37657749

相关知识

Java 水仙花数的计算与统计(for循环 / while 循环)
“校服循环使用”,不能止于倡议
“循环经济”引领绿色生活美学
5.植物生长周期性循环规律
自由光外循环应如何开启使用?开启外循环后对车内空气质量有何影响?
循环经济理念|园林绿化废弃物再利用
Day6 循环
三亚加快种养一体化循环农业发展
加法接力赛C语言算法,C语言循环结构
互花米草入侵影响下闽江河口湿地硫生物循环特征与循环状况评估

网址: 循环 https://m.huajiangbk.com/newsview467265.html

所属分类:花卉
上一篇: 编程小白碰到C语言水仙花数
下一篇: Java编程