【问题标题】:Get the sum of digits in JAVA获取JAVA中的数字总和
【发布时间】:2017-10-24 21:29:06
【问题描述】:

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

例如:

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);      
}

我坚持要像示例中那样获取这些数字的总和。我没有运气在互联网上阅读了一些东西。

【问题讨论】:

  • 您告诉了我们所需的输出,但没有告诉我们您得到的输出。你有错误吗?输出不正确?等
  • 尝试将问题分解为更小的问题。在每个等式中,您都需要三个数字。您已经拥有的第一个(柜台)。现在想想如何根据计数器计算出另外两个数字。
  • 获取单个数字应该不是问题,特别是因为您知道数字的最大大小(即最多 2 位):尝试sum = count/10 + count %10;
  • @jhhoff02 - 嗯,不。 While 循环工作正常,它显示了所有应有的正两位数。我似乎无法像示例中那样得到它们的总和。总和 = 计数 % 10;也许这样的事情会起作用?这就是我卡住的部分。
  • count%10可以得到个位,count/10可以得到十位。所以它应该是这样的: System.out.println("" + count + "的数字总和是 " + count/10 + " + " + count%10 + " = " + count/10+count%10 + ".");

标签: java while-loop sum digits


【解决方案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

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

【讨论】:

    【解决方案2】:

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

    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-loop,count++ 而不是 count = count + 1 ...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多