繁体   English   中英

获取JAVA中的数字总和

[英]Get the sum of digits in JAVA

我正在尝试编写一个程序,它显示所有可能的两位数字并显示这些数字的总和。

例如:

10 - 1 + 0 = 1
11 - 1 + 1 = 2
12 - 1 + 2 = 3
..
98 - 9 + 8 = 17
99 - 9 + 9 = 18

我使用 while 循环来获得像这样的正数:

public static void main(String[] args){
   int count = 10;

   while (count < 100) { 
      System.out.println("count:" + count); 
      count = count + 1;    
   }

   System.out.print("Sum of Digits of " +sum);      
}

我被困在像示例中那样获得这些数字的总和。 我在互联网上阅读了一些东西,但没有运气。

一个有效的解决方案,如果你真的每个号码只有两位数字:

int count = 10;
while (count <100){
    int first = count /10;
    int second = count %10;
    System.out.println(count + " - " + first +" + "+ second + " = " + (first+second));
    count = count + 1;
}

在学习 Java 时,您应该首先了解基本的运算符,例如 / 和 %。 对于这个安静的简单示例,这两个是必需的。

我试图尽可能接近您的代码以获得预期的结果。 但是,还有其他解决方案(for 循环,count++ 而不是 count = count + 1 ...)

获得 n 位数字的数字总和的一种简单方法是:

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

num % 10将给出num和 10 之间的余数,这是num的最后一位。 您将其添加到sum变量中。
num / 10将给出num和 10 的除法结果。因为num和 10 都是整数,所以结果也将是整数。 除以 10 只会将小数点左移一位,由于结果是整数,因此将删除小数点后的数字。

示例:
数量 = 108
数量 % 10 = 108 % 10 = 8
数量 / 10 = 108 / 10 = 10.8 -> 10

这种情况一直持续到num变成一位数。 num为一位数时,除以 10 将返回 0。

示例:
数量 = 5
数量 % 10 = 5 % 10 = 5
数量 / 10 = 5 / 10 = 0.5 -> 0

最后一位数字将添加到总和中,循环将停止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM