java – 遍历从末尾开始的数字并添加其他所有数字

我正在完成一项学校作业,所以我正在寻找有关我做错的指导.这是一个更大的程序的一部分,但我正在尝试在我实现其余程序之前进行循环.基本上,我的循环假设迭代所有数字,然后添加其他所有数字,例如:

如果输入的数字是48625,那么返回5 6的总和4.我想我必须将我的循环与if语句组合以遍历每个第n个数字,所以这是我到目前为止所做的:

class testLoop{

    public static void main (String args[]){

        int num = 12345;
        int sum = 0;

        for(int i = 0; num > 0; i++)
        {
            if(i%num == 0)
            {
                sum += num % 10;
            }

            num /= 10;

        System.out.println(sum);
    }
    }

}

不幸的是,这不起作用.它返回6,5,5,5,5.它没有按计划添加第n个值.

我也尝试过以下方法:

int num = 12345;
int sum = 0;

while(num > 0) {
    sum += num % 10;
    num /= 10;
}

但是这也没有用,它返回15,这基本上是变量num中所有数字的总和.我知道我接近一个解决方案,它介于我的两个代码之间,但我似乎无法做到正确.

最佳答案
int num = 12345;
int sum = 0;
int pos = 0;
while(num > 0) {
    int digit = num % 10;    // make it really blatantly clear what the DIGIT is
    if (pos % 2 == 0)
      sum += digit;
    num /= 10;
    pos++;
}

你需要一个检查机制来确保你跳过一半的数字. [您正在尝试添加数字的数字,而不是数字.编辑.]

这也将修复您的第一个解决方案:

if(i%2 /*not num*/ == 0)

转载注明原文:java – 遍历从末尾开始的数字并添加其他所有数字 - 代码日志