注册 登录
编程论坛 JAVA论坛

这是一个java 1-20以内的偶数平方求和,求大佬解答

xi2254601605 发布于 2018-10-10 18:03, 5567 次点击
public class djjs{
    public static void main(String[] args) {
        int c=0;
        for(int i=1;i<=20;i++){
            if(i%2!=0){
                System.out.println("这个数不是奇数");
            }
            else{
                i*=i;
                c+=i;
                }
            }
        System.out.println(" "+c);
        }
    }

[此贴子已经被作者于2018-10-10 18:06编辑过]

14 回复
#2
xi22546016052018-10-10 18:06
为什么不了图
#3
xi22546016052018-10-10 18:08
回复 楼主 xi2254601605
他的错误显示是这个样子
Exception in thread "main" java.lang.Error: 无法解析的编译问题:

    at dyc.djjs.main(djjs.java:2)
#4
林月儿2018-10-10 18:46
类名命名规则要注意,还有这个i不停地累乘,应该不是你想要的处理吧?
#5
幻紫灵心2018-10-10 21:23
类名首字母大写
i*=i;直接把i的值修改了,不能实现递增
缩进
程序代码:
public class Temp {
    public static void main(String[] args) {
        int c=0;
        for(int i=1;i<=20;i++){
            if(i%2!=0){
                System.out.printf("%d这个数不是奇数\n",i);
            }
            else{
                c += i*i;
            }
        }
        System.out.println(""+c);
    }
}
#6
xi22546016052018-10-11 13:25
回复 5楼 幻紫灵心
大佬你这个不是和我一样吗?都是先算i*i然后赋值给c。(虽然你的可以运行)
#7
青天小菜鸟2018-10-11 14:50
回复 6楼 xi2254601605
程序代码:
你在你的语句前面价格输出语句你就懂了
....
else{
                    System.out.println(""+i);
                    i*=i;
                    c+=i;
                    //c+=i*i;
                }
#8
erie2018-10-12 21:20
public class Djjs{
    public static void main(String[] args) {
        int c=0;
        for(int i=1;i<=20;i++){
            if(i%2!=0){
                System.out.println(i+"是奇数");
            }else{     
                c+=i*i;   
                 }
        }
        System.out.println("1-20内的偶数之和为:"+c);
    }
 }
#9
erie2018-10-12 21:26
i=1时,此时c=0;
i=2时,此时c=4;变量i变为4;
所以此时for循环时,i++变为5;此时c=4;
i接着为6,此时c=4+36=40;此时i变为36;
i++为37不再满足for循环中的i<=20;退出循环,按你的代码输出结果为:

这个数不是奇数
这个数不是奇数
 40
#10
zh10253111732018-10-17 14:23
package Test;

public class Test01 {

    public static void main(String[] args) {
        int a = 0;
        int b = 0;
        for (int i = 1; i <= 20; i++) {
            if (i % 2 == 0) {
                b=i;
                b*=b;
                a = a + b;
            } else {
                System.out.printf("%d这个数不是偶数%n",i);
            }
        }
        System.out.println(a);
    }

}
小白一个,不喜勿喷,hhh

[此贴子已经被作者于2018-10-17 14:25编辑过]

#11
zh10253111732018-10-17 14:24
回复 10楼 zh1025311173
忘了输出了    哈哈哈哈哈
#12
林月儿2018-10-17 23:11
凑个热闹
程序代码:
package com.huawei.test23;

public class Test {
//    1-20以内的偶数平方求和
    public static void main(String[] args) {
        System.out.println(getSum(1, 20));
    }
    static int getSum(int n, int max) {
        int sum = 0;
        if(n % 2 != 0)
            System.out.format("%d这个数不是偶数\n", n);
        else
            sum += n * n;
        if(n < max)
            sum += getSum(n+1, max);
        return sum;
    }
}


[此贴子已经被作者于2018-10-17 23:12编辑过]

#13
leeche10242018-10-23 19:53
public class He {

    public static void main(String[] args) {
        //求1-20以内的偶数平方求和
        int sum=0;
        for(int a=1;a<=20;a++) {
            if(a%2==0) {
                sum=sum+a*a;
            }
        }System.out.println("sum="+sum);
    }
}


小白一个,我感觉最容易理解吧
#14
新人学习2018-10-25 16:55
回复 6楼 xi2254601605
c += i * i;   /c = c + i * i;
i 的值不变

i *= i;      // i = i * i;   
i 的值会增加
#15
陈无2018-10-29 23:25
这个i是局部变量,这样来回调用肯定不行
1