Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将两个随机生成的数字相加?JAVA_Java_Addition - Fatal编程技术网

如何将两个随机生成的数字相加?JAVA

如何将两个随机生成的数字相加?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

我要求用户输入两个随机数(即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 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){
    
    如果(num1
    javascript!=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;
    }