我设法确定了彼得森的号码,但在循环中遇到问题。
import java.util.*;
public class Special_no
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
int n,r,s=0;int i,f,m=0;int a,j=0;
System.out.println("Enter the Lower Limit : ");
n=sc.nextInt();
System.out.println("Enter the Upper Limit : ");
a=sc.nextInt();
for(j=n;j<a;j++)
{
m=j;
do
{
r=m%10;
f=1;
for(i=1;i<=r;i++)
{
f=f*i;
}
s=s+f;
m=m/10;
}
while(m>0);
if(s==j)
System.out.print(j+",");
}
}
}
在运行期间,在我输入上限和下限后,程序会接受它,但它不会给我任何输出。
如何更正?
答案 0 :(得分:0)
替换你的循环:
for(i=a;i<=b;i++)
{
x=i;
s=0;
while(x>0)
{
r=x%10;
fact=1;
for(k=1;k<=r;k++)
{
fact=fact*k;
}
s=s+fact;
x=x/10;
}
if(s==i)
System.out.print(i+" ");
}
你是受欢迎的。