繁体   English   中英

奇数和

[英]Sum of odd numbers

给定总和1-3 + 5-7 + 9-11 + 13 ...您应该编译一个程序(给定整数N),该程序会找到总和的值并将其显示在第N个加数上。

我什至不知道该程序应该如何。 我已经写了一些代码,但不知道要添加什么。 拜托,你能帮我吗? :)

这是我的代码:

Scanner input = new Scanner(System.in);

System.out.print("n = ");
int n = input.nextInt();
int sum = 0;

for (int i = 1; i <= n; i++) {       
    if (i % 2 != 0) {
        sum = sum + i;
    }
}

System.out.println(sum);

可能是您想要这个

如果我输入i / p 7,则将产生-4作为o / p

for (int i = 1; i <= n; i+=2) {
        if( i % 4 == 1 )
            sum = sum + i;
        else
            sum = sum - i;
}

@fafl样式(使用三元运算符),如果我输入错误,请纠正我

sum += (i % 2 != 0) ? ( i % 4 == 1 ) ? + i : - i;

如果我输入i / p 7,则将产生7作为o / p

        int n = input.nextInt();
        int sum = 0;
        int addOrDedduct = 1;
        for (int i = 1; i <= n; i++ ) {
                if( addOrDedduct % 4 == 1 )
                    sum = sum + addOrDedduct;
                else
                    sum = sum - addOrDedduct;
                addOrDedduct+=2;
        }
        System.out.println(sum);

更新:
fafl的语句sum = n % 2 == 0 ? -n : n sum = n % 2 == 0 ? -n : n产生相同的o / p,这里不需要使用loop
忘记循环并使用fafl的答案。

您可以使用一个额外的变量来执行此操作,以检查是否必须加或减:

    int sum = 0;
    boolean sub = false;
    for (int i = 1; i <= n; i++) {
        if (i % 2 == 1) {
            if (sub) {
                sum -= i;
                sub = false;
            } else {
                sum += i;
                sub = true;
            }
        }
    }

该解决方案有点笨拙,但应该可以使用。

Fafl是正确的sum = n%2 == 0? -n:n

Scanner input = new Scanner(System.in);
    System.out.println("Enter n= ");
    int n = input.nextInt();
    int sum=0;
    boolean positive=false;

    for(int i=1;i<=n;i+=2){
        positive=!positive;
        sum = positive? sum+i : sum-i; 
    }
    System.out.println(sum);
}

使用for循环,无模算术:

int sum = 0
for (int i = 1; math.abs(i) <= n; i = -math.signum(i)*(math.abs(i)+2)) {
        sum += i;
    }
system.out.println(sum)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM