获取JAVA中的数字总和

Posted

技术标签:

【中文标题】获取JAVA中的数字总和【英文标题】:Get the sum of digits in 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 + "."); 【参考方案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 ...)

【讨论】:

以上是关于获取JAVA中的数字总和的主要内容,如果未能解决你的问题,请参考以下文章

获取总和为 11 的所有 3 位数字,或者我们可以说模块在 JS 中为 1 [关闭]

获取总和与给定数字匹配的连续数字

获取加起来等于给定数字的所有可能总和

获取总和为X的数组的数字列表[重复]

在 Dart 中获取集合/列表中数字总和的最简洁方法是啥?

如何用总和替换文件中的数字?