一个新手编写求100~M的水仙花数
package rubbit;import java.util.*;
public class 水仙花数 {
static int i,N=1;
static int jf(int n1,int n2)//定义一个乘方的方法
{ for(i=0;i<n2;i++)
N=N*n1;
return N;
}
public static void main(String args[]){
@SuppressWarnings("resource")
Scanner in=new Scanner(System.in);
System.out.print("请输入一个整数(最好大于4位数)");
int M=in.nextInt();
int k,b,j,mod,sum=0,n=0;//n是j的位数
for(j=100;j<=M;j++)
{{b=j;
do{b=b/10;
n++;
}
while(b!=0);}//判断j是几位数
for(k=0;k<n;k++)//是否为水仙花数
{ mod=b%10;
b=b/10;
sum=sum+jf(mod,n);
}n=0;
if(sum==j)
System.out.print(j+" ");
}
}
}看看程序哪里有错,主要是算法
[此贴子已经被作者于2017-4-25 18:57编辑过]