Java 求两个数(含两个数)之间的赔率之和

Java 求两个数(含两个数)之间的赔率之和,java,Java,我正在写一个简单的程序,以找到两个输入的数字之间的奇数总和,我将感谢任何反馈。我在这个问题上工作了很长时间,我需要一些专业知识 import java.util.Scanner; class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("#1: "); int num1 = s.ne

我正在写一个简单的程序,以找到两个输入的数字之间的奇数总和,我将感谢任何反馈。我在这个问题上工作了很长时间,我需要一些专业知识

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("#1: ");
        int num1 = s.nextInt();
        System.out.print("#2: ");
        int num2 = s.nextInt();
        int sum = 0;
        for(int i= num1; i<(num2-num1); i++){
            if (i%2 != 0){
                sum+=i;
            }
        }
        System.out.print();
    }
}
import java.util.Scanner;
班长{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
系统输出打印(“#1:”);
int num1=s.nextInt();
系统输出打印(“#2:”);
int num2=s.nextInt();
整数和=0;

对于(int i=num1;i我会先测试
num1
是否为偶数,如果它是加一使其为奇数(否则,它已经为奇数)。然后再增加
2
,这样你就知道每个
i
都是奇数。接下来,你的循环测试应该是
我会测试
num1
是否为偶数,如果它是加一使其为奇数(否则,它已经是奇数了)。然后增加
2
,这样你就知道每个
i
都是奇数。接下来,你的循环测试应该是
,你也可以应用一些数学,而不是循环所有的数字,这更有效,并且成为一个常数时间算法,而不是线性时间

要获得这些数字的总和,可以将两个数字之间的平均值乘以范围内的元素计数

如果这两个数字中的任何一个都是奇数,则可以加一或减一以达到范围内的第一个偶数,因此可以从偶数计算到偶数

示例:从3到12,您将使用4和12。平均值为8。并且您的范围内有(12-4)/2+1=5个偶数(1+1是因为它包含范围)。总和为8*5=40


这是真的:4+6+8+10+12=40

你也可以应用一些数学,而不是循环遍历所有的数字,这样效率更高,并且成为一个常数时间算法,而不是线性时间

  import java.util.Scanner;
class SumOfOdds
{
        public static void main(String[] args) 
        {
            Scanner s = new Scanner(System.in);
            System.out.print("#1: ");
            int num1 = s.nextInt();
            System.out.print("#2: ");
            int num2 = s.nextInt();
            if (num1 % 2 == 0)
            {
                num1++;
            }
            int sum = 0;
            for (int i = num1; i <= num2; i+=2)
            {
                sum += i;
            }
            System.out.println(sum);
        }
}
要获得这些数字的总和,可以将两个数字之间的平均值乘以范围内的元素计数

如果这两个数字中的任何一个都是奇数,则可以加一或减一以达到范围内的第一个偶数,因此可以从偶数计算到偶数

示例:从3到12,您将使用4和12。平均值为8。并且您的范围内有(12-4)/2+1=5个偶数(1+1是因为它包含范围)。总和为8*5=40

这是正确的:4+6+8+10+12=40

import java.util.Scanner;
  import java.util.Scanner;
class SumOfOdds
{
        public static void main(String[] args) 
        {
            Scanner s = new Scanner(System.in);
            System.out.print("#1: ");
            int num1 = s.nextInt();
            System.out.print("#2: ");
            int num2 = s.nextInt();
            if (num1 % 2 == 0)
            {
                num1++;
            }
            int sum = 0;
            for (int i = num1; i <= num2; i+=2)
            {
                sum += i;
            }
            System.out.println(sum);
        }
}
SumOfOdds类 { 公共静态void main(字符串[]args) { 扫描仪s=新的扫描仪(System.in); 系统输出打印(“#1:”); int num1=s.nextInt(); 系统输出打印(“#2:”); int num2=s.nextInt(); 如果(num1%2==0) { num1++; } 整数和=0; 对于(inti=num1;i
import java.util.Scanner;
SumOfOdds类
{
公共静态void main(字符串[]args)
{
扫描仪s=新的扫描仪(System.in);
系统输出打印(“#1:”);
int num1=s.nextInt();
系统输出打印(“#2:”);
int num2=s.nextInt();
如果(num1%2==0)
{
num1++;
}
整数和=0;

对于(inti=num1;i这里有一些简单的错误可以在代码中修复,而不仅仅是num1。此外,请确保在最后一条语句中打印结果。相比之下,有许多其他方法可以解决此问题,但如果您解决了这几个问题,您的简单方法就会很好地工作。

这里有一些简单错误可以在代码中修复。首先,它不应该是(num2-num1),而不是num1。另外,请确保在最后一条语句中打印您的结果。相比之下,有许多其他方法可以解决此问题,但如果您解决了这几个问题,您的简单方法就会很好。

感谢您的反馈。我忽略了这么简单的解决方案。!感谢您的反馈。我看到了这么简单的解决方案erlooked.!如果第一个数字是奇数或非奇数,你应该先测试。如果第一个数字是奇数或非奇数,你应该先测试。请添加一些描述来回答,以便更好地指导提问者。请添加一些描述来回答,以便更好地指导提问者
  import java.util.Scanner;
class SumOfOdds
{
        public static void main(String[] args) 
        {
            Scanner s = new Scanner(System.in);
            System.out.print("#1: ");
            int num1 = s.nextInt();
            System.out.print("#2: ");
            int num2 = s.nextInt();
            if (num1 % 2 == 0)
            {
                num1++;
            }
            int sum = 0;
            for (int i = num1; i <= num2; i+=2)
            {
                sum += i;
            }
            System.out.println(sum);
        }
}