Java新手,我正在尝试用递归编程一个项目EulerQ

Java新手,我正在尝试用递归编程一个项目EulerQ,java,Java,在这个问题中,我试图用Java重现ProjectEuler的结果,但经过几次失败的尝试和数小时的工作,最终我放弃了。这个程序可以编译,但我不知道为什么它不会通过我的if语句。这不是为了上课,而是为了我自己。这是欧拉计划的提示:“如果我们列出10以下所有3或5的倍数的自然数,我们得到3、5、6和9。这些倍数的总和是23。” 以下是我的尝试: public class MultiplesOfThreeandFive { public static void main(String [] ar

在这个问题中,我试图用Java重现ProjectEuler的结果,但经过几次失败的尝试和数小时的工作,最终我放弃了。这个程序可以编译,但我不知道为什么它不会通过我的if语句。这不是为了上课,而是为了我自己。这是欧拉计划的提示:“如果我们列出10以下所有3或5的倍数的自然数,我们得到3、5、6和9。这些倍数的总和是23。”

以下是我的尝试:

public class MultiplesOfThreeandFive {
    public static void main(String [] args) {
        int x = 3; 
        int y = 10; 
        if (y > 0) {
            if (y % x == 0) {
                System.out.println(y + " is a multiple of 3");
                y--;      
            } else {
                System.out.println(y + " is not a multiple of 3");
                y--;
            }
        }
    }
}

我不太明白这个问题,但是为什么不增加Y的值,就像在循环中一样,看起来Y的值保持不变,这就是你想要的吗?

public class NewClass2{
public class NewClass2 {
    public static void main(String [] args) {
        int y = 1;   
        while(y<=23){
            int x = 3; 
            if (y > 0) {
                if (y % x == 0) {
                    System.out.println(y + " is a multiple of 3");
                    y++;
                } else {
                    System.out.println(y + " is not a multiple of 3");
                    y++;
                }
            }
        }
    } 
}
公共静态void main(字符串[]args){ int y=1; while(y0){ 如果(y%x==0){ System.out.println(y+“是3”的倍数); y++; }否则{ System.out.println(y+“不是3”的倍数); y++; } } } } }
您需要使用while循环来增加y。注意我把y++放在每个if语句后面?
当y小于或等于23时,它将继续循环。试试这个代码

三个五的公共类倍数{

public static void main(String[] args) {
    int x = 3;
    int sumOfAll = 0;
    for(int y = 0; y < 10; y++)  {

        if(y % x == 0)  {
            System.out.println(y + " is a multiple of 3"); 
            sumOfAll = sumOfAll + y;
            System.out.println("Sum is " + sumOfAll);
        } else {
            System.out.println(y + " is not a multiple of 3");

        }
    }

}
publicstaticvoidmain(字符串[]args){
int x=3;
int sumOfAll=0;
对于(int y=0;y<10;y++){
如果(y%x==0){
System.out.println(y+“是3”的倍数);
sumOfAll=sumOfAll+y;
System.out.println(“总和为”+sumOfAll);
}否则{
System.out.println(y+“不是3”的倍数);
}
}
}

}

三个维度的公共类倍数{
公共静态void main(字符串[]args){
整数和=0;
对于(int i=1;i<10;++i){
如果(i%3==0 | | i%5==0){
System.out.println(i+“是3或5”的倍数);
sum=sum+i;
}
}
System.out.println(“总和为:“+sum”);
} 
}

我认为你的最后一段不太可能给你一个好的答复……坦白说,我不在乎。有成百上千的论坛。我将在此网站或其他网站上创建一个新帐户。据我所知,在这个或其他网站上没有ip或mac地址锁定。我上一次请求帮助,结果在评论中被欺负,而没有得到帮助。我告诉我的上一位Java老师,这就是我为什么更喜欢python的原因,因为社区更友好,还有一个内置的帮助方法,内置了易于理解的文档。if语句executed为yes,但它只生成1个结果。如何让它贯穿整个循环?@Espryon我从这个问题中删除了你的第二个问题。如果你在一个问题中发布了两个问题,或者发布了与你的问题无关的附加元信息,那么你很可能会被否决或者问题被关闭。请注意,Stack Overflow不是一个论坛,而是一个问答网站,不是问题或答案的东西只属于评论。你应该能够为你的另一个问题问一个单独的问题,并得到一个单独的答案。我只是想让它通过一个循环,让程序完成这个任务似乎非常困难。公共类MultiplesOfThreeandFive{public static void main(String[]args){int x=3;for(int y=0;y<10;y++){if(y%x==0){System.out.println(y+“是3的倍数”);}否则{System.out.println(y+“不是3的倍数”);}}请单击正确的符号,将其标记为正确。@JohnHogan,为什么要继续循环到23?顺便说一句,递归是指方法调用自身时的递归
public class MultiplesOfThreeandFive {
    public static void main(String [] args) {
    int sum = 0;
    for(int i = 1; i < 10; ++i) {
        if(i % 3 == 0 || i % 5 == 0) {
            System.out.println(i+" is a multiple of 3 or 5");
            sum = sum + i;
        }
    }
    System.out.println("The sum is : "+sum);
    } 
}