欧拉计划 问题1和2

全文使用 java描述算法

问题一:

  如果我们列出所有低于10的自然数是3或5的倍数,我们得到3,5,6和9,这些倍数的总和为23。           找到1000以下所有3或5的倍数的总和。

  思路:3和5的最小公倍数是15,所以将3或5的倍数分成三组:1:能被3整除而不能被15整除的  2:能被5整除而不能被15整除的  3:只能被15整除的  

     设一个中间变量累加这些值,最后输出即可

public static void main(String[] args) {
    int temp=0;
    for(int i=1;i<1000;i++) {
        if(i%3==0&&i%15!=0) {
            temp+=i;
            }
        if(i%5==0&&i%15!=0) {
            temp+=i;
            }
        if(i%15==0) {
            temp+=i;
            }
        }
    System.out.println(temp);
}

问题二:

  Fibonacci序列中的每个新项都是通过添加前两个项生成的。从1和2开始,前10项将是:1,2,3,5,8,13,21,34,55,89,...

  通过考虑斐波纳契数列中不超过四百万的条件,求出偶数项的和。

  思路:斐波那契这题很经典,适合入门算法的同学看看,本题还可以用递归来做,这里我直接用了中间临时变量来做

  

public static void main(String[] args) {
    System.out.println(test(1,2,4000000));
}
//提供斐波那契前两项和最大项的值,得出偶数项的和
public static int test(int a,int b,int c) {
    int temp=0;
    int total=0;
    int i;
    for(i=0;temp<c+1;i++) {
        temp=a+b;
        a=b;
        b=temp;
        if((i+1)%2==0) {
            total+=temp;
        }
    }
    return total;
}

  

猜你喜欢

转载自www.cnblogs.com/kiritozhj/p/9163610.html