58,452
社区成员




import java.util.Calendar;
public class Test {
public static void main(String[] args) {
Test test = new Test();
long s = Calendar.getInstance().getTimeInMillis();
for (int j = 1; j <= 300000; j++) {
System.out.println("第 " + j + " 项:" + test.getItem(j));
System.out.println("前 " + j + " 项和:" + test.sumN(j));
System.out.println("==============");
}
long e = Calendar.getInstance().getTimeInMillis();
System.out.println("用时:" + (e - s) / 1000 + "秒。");//用时:98秒。
}
/**
* 求由递推公式(a[0]=6, a[1]=3, a[n] = a[n-1] - a[n-2] + 5)确定的数列的第n项的值
* @param n
* @return
*/
private int getItem(int n) {
int result = 0;
if (n == 1) {
return 6;
} else if (n == 2) {
return 3;
} else {
int n_2 = 6;
int n_1 = 3;
for (int i = 3; i <= n; i++) {
result = n_1 - n_2 + 5;
n_2 = n_1;
n_1 = result;
}
}
return result;
}
/**
* 求由递推公式(a[0]=6, a[1]=3, a[n] = a[n-1] - a[n-2] + 5)确定的数列的前n项和
* @param n
* @return
*/
private int sumN(int n) {
if (n == 1) {
return 6;
} else if (n == 2) {
return 9;
} else {
int n_2 = 6;
int n_1 = 3;
int result = n_1 + n_2;
int tmp = 0;
for (int i = 3; i <= n; i++) {
tmp = n_1 - n_2 + 5;
n_2 = n_1;
n_1 = tmp;
result += tmp;
}
return result;
}
}
}