用Java编程列出所有四位数字,其总和为7

时间:2015-09-29 11:30:02

标签: java sum add

用Java编程列出所有四位数字,这些数字的总和为7. ie.list 0000到9999之间的数字,得到四位数的总和为7.

例如:7171是一个四位数字,四位数字的总和为7 + 1 + 7 + 1 = 16然后1 + 6 = 7.因此应列出这类数字。

我写了一段代码,但它没有工作。代码如下:

public class Add 
{
    double i,s,n=0;
    void method()
    {
        for(i=0000; i<=9999; i++)
        {
            for(n=i;n>0;n/=10)
            {
                s=s+(n%10);

            }
            while(s>9)
            {
                for(n=s;n>0;n/=10)
                {
                    s=s+(n%10);
                }

            }
            if(s==7)
            {
                System.out.println("i");
            }
        }
     }



public static void main(String[] args) 
    {
        Add ob=new Add();
        ob.method();
    }

}

3 个答案:

答案 0 :(得分:8)

这是你想要的程序:

public class SumDigits {
    public static void main(String[] args) {
        for(int i=7; i<=9999; i+=9)
            System.out.printf("%04d\n", i);
    }
}

数字的总和为你提供了除数的除法者。所以从7开始,连续加9,你就得到所有这些数字。

答案 1 :(得分:1)

我知道这有点老了,但是可以帮助其他人。

public class Add {

    int sum(String val)
    {
        int num=0,temp=0;
        int count=val.length();
        temp=count;
        for(int i=0;i<count;i++)
        {                    
            temp--;
            char k=val.charAt(i);
            num += Character.getNumericValue(k);
            int p=String.valueOf(num).length();
            if(p>1&&temp==0)
            {
               count=p;
               i=-1;
               val=String.valueOf(num);
               num=0;
            }
        }
        return num;
    }

    public static void main(String []args)
    {
       Add a=new Add();
       for(int k=0;k<9999;k++)
       {
           if(a.sum(String.valueOf(k))==7)
                System.out.println("Numbers are"+k);
       }
    }    
}

答案 2 :(得分:0)

希望这会对你有所帮助。

对每个数字求和,并且总和大于10,再次求和。

public class Add {

public void calculate(int value) {
    for (int index = 1; index <= value; index++) {
        int i = index;
        int sum=0;
        int summation = 0;
        sum = computeDigits(i, sum);
        summation = computeDigits(sum, summation);

        if (summation == 7) {
            System.out.println(index);
        }
    }
}

private int computeDigits(int i, int sum) {
    while(i>9) {
        sum += i%10;
        i = i/10;
    }
    sum += i;
    return sum;
}

public static void main(String[] args) {
    Add ob = new Add();
    ob.calculate(1000);
}

}