获取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中的数字总和的主要内容,如果未能解决你的问题,请参考以下文章