9 寻找自幂数
自幂数是指一个 n 位数(3≤n≤7 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153;1^4+6^4+3^4+4^4=1634)。三位自幂数:水仙花数;四位自幂数:四叶玫瑰数;五位自幂数:五角星数;六位自幂数:六合数;七位自幂数:北斗七星数。要求编写程序,输入一个正整数n(3≤n≤7),按递增顺序输出所有n位自幂数,每个数字占一行。
输入格式:
在一行中输入一个整数n,(3≤n≤7)。
输出格式:
按递增顺序输出所有n位自幂数,每个数字占一行。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
153
370
371
407
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n,h,a,k,i=0,j=1;
int b=0;
Scanner reader =new Scanner (System.in);
n=reader.nextInt();
int c[]=new int[7];
i+=Math.pow(10,n-1);
if(n>=3&n<=7) {
for(;i<Math.pow(10,n);i++)
{
a=i;
h=i;
if(i>=Math.pow(10,n-1))
for(k=0;k<n;k++)
{
c[k]=a%10;
a/=10;
b+=Math.pow(c[k],n);
}
if(b==h&&j==1)
{
System.out.print(b);
j=2;
}
else if(b==h&&j==2)
{
System.out.println();
System.out.print(b);
}
b=0;
}
}
}
}
此范围为3到7位数想增大范围把if(n>=3&n<=7)去掉就是任意范围,不要忘记去掉{ };