全文使用 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; }