浏览 1784 次
锁定老帖子 主题:递推算法一
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-13
最后修改:2011-04-13
递推算法(一、双幂数列)
2、从第2项开始,为了实现从小到大的排列,设置两个变量power2(2的幂),power3(3的幂),显然power2!=power3 3、初始时,power2 = 1,power3 = 1,sum=1, 4、当2*power2<3*power3的时候,按照递推规律,power2 = 2*power2,set[i] = power2 5、当2*power2>3*power3的时候,按照递推规律,power3 = 3*power3,set[i] = power3 private static void powerSet(int n) { //用来装数列 double set[] = new double[100]; set[1] = 1d; //power2表示2的幂,power3表示3的幂,sum是和 double power2 = 1d, power3 = 1d, sum = 1d; //index2记录2的次数,index3为3的次数,baseNum为指数的底 int index2 = 0, index3 = 0, baseNum = 0; for (int i = 2; i <= n; i++) { if (2 * power2 < 3 * power3) { power2 = 2 * power2; index2++; set[i] = power2; sum = sum + power2; baseNum = 2; } else { power3 = 3 * power3; index3++; set[i] = power3; sum = sum + power3; baseNum = 3; } } if (baseNum == 2) { System.out.println("数列的第" + n + "项是:" + 2 + "^" + index2 + "=" + set[n]); } else { System.out.println("数列的第" + n + "项是:" + 3 + "^" + index3 + "=" + set[n]); } System.out.println("数列的" + "前" + n + "项和是:" + sum); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |