Java 接受一个范围并打印给定范围内的所有Peterson编号
我设法确定了彼得森的号码,但在循环中遇到了问题Java 接受一个范围并打印给定范围内的所有Peterson编号,java,numbers,Java,Numbers,我设法确定了彼得森的号码,但在循环中遇到了问题 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.pri
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+",");
}
}
}
import java.util.*;
公共课特别课
{
公共静态void main(字符串参数[])
{
扫描仪sc=新的扫描仪(System.in);
int n,r,s=0;int i,f,m=0;int a,j=0;
System.out.println(“输入下限:”);
n=sc.nextInt();
System.out.println(“输入上限:”);
a=sc.nextInt();
对于(j=n;j请为此更换回路:
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+" ");
}
(i=a;i0)的
{
r=x%10;
事实=1;
对于(k=1;kBy)进行一些调试。正如OliverCharlesworth所说,进行一些调试,但只是为了提示一下,while(m>0);
做什么?为什么有它?是while(m>0);
正确吗?你试过;
?@Skaros,这是一个do…while()
而不仅仅是while()
,所以这不一定是问题所在。@JimLewis如果你是对的,就没有看到那里的do{