如何将两个随机生成的数字相加?JAVA
我要求用户输入两个随机数(即110),然后我必须将它们相加,这样(110)将是55如何将两个随机生成的数字相加?JAVA,java,addition,Java,Addition,我要求用户输入两个随机数(即110),然后我必须将它们相加,这样(110)将是55 public int sum(int num1, int num2) { int counter; //just a variable until I clean this up and get it to work questions++; if (num1 < num2) { int difference = num2-num1;//difference be
public int sum(int num1, int num2) {
int counter; //just a variable until I clean this up and get it to work
questions++;
if (num1 < num2) {
int difference = num2-num1;//difference between the given numbers
int holder = 0;
while (holder <= difference) {
holder ++;
num1 += num1;
}
counter = num1;
}
}
公共整数和(整数m1,整数m2){
int counter;//只是一个变量,直到我清理并使其工作为止
问题++;
如果(num1if(num1public int sum(int num1,int num2){
int结果=0;
而(num1Java8变体:
IntStream.rangeClosed(Math.min(num1, num2), Math.max(num2, num1)).sum()
它的作用是:
创建包含从num1到num2的所有数字的整数范围
- 我们需要确保左边框总是小于右边框,否则范围将为空。这就是为什么我使用
min()
和max()
把所有的数字加起来
但要注意:
某些数字组合产生的和大于整数.MAX_值
,这将导致和溢出,并可能产生负值。
这可以通过使用稍微不同的版本来解释,即性能稍差:
IntStream.rangeClosed(Math.min(num1, num2), Math.max(num2, num1))
.mapToObj(BigInteger::valueOf)
.reduce(BigInteger.ZERO, BigInteger::add);
我猜这是一个编程练习,所以使用循环是整个任务的重点。但是,如果您只是想要得到正确答案的代码,您可以使用算术级数公式:
public int sum(int num1, int num2) {
if (num1 <= num2) {
return (num2 - num1 + 1) * (num1 + num2) / 2;
}
return 0;
}
公共整数和(整数m1,整数m2){
如果(num1javascript!=java
删除javascript如果代码仅为java,通过将num1
添加到自身,您将获得1、2、4、8、16、
,每次翻倍,直至256
。运行总数和每次添加的金额需要单独的变量。顺便说一句,我怀疑您想要if(num1
IntStream.rangeClosed(Math.min(num1, num2), Math.max(num2, num1))
.mapToObj(BigInteger::valueOf)
.reduce(BigInteger.ZERO, BigInteger::add);
public int sum(int num1, int num2) {
if (num1 <= num2) {
return (num2 - num1 + 1) * (num1 + num2) / 2;
}
return 0;
}