接受范围并打印给定范围内的所有Peterson数字

时间:2015-08-02 16:22:14

标签: 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.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+",");
            }
        }
}

在运行期间,在我输入上限和下限后,程序会接受它,但它不会给我任何输出。

如何更正?

1 个答案:

答案 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+"  ");
    }

你是受欢迎的。