【程序1】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
1.程序分析:请抓住分子与分母的变化规律。
public class Main {
public static void main(String[] args) {
float fm = 1f;
float fz = 1f;
float temp;
float sum = 0f;
for (int i = 0; i < 20; i++) {
temp = fm;
fm = fz;
fz = fz + temp;
sum += fz / fm;
}
System.out.println(sum);
}
}
【程序2】 题目:求1+2!+3!+…+20!的和
1.程序分析:此程序只是把累加变成了累乘。
public class Main {
static long sum = 0;
static long fac = 0;
public static void main(String[] args) {
long sum = 0;
long fac = 1;
for (int i = 1; i <= 10; i++) {
fac = fac * i;
sum += fac;
}
System.out.println(sum);
}
}
【程序3】 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
public class Main {
static int[] a = new int[5];
static int[] b = new int[5];
public static void main(String[] args) {
boolean result = false;
Scanner s = new Scanner(System.in);
long l = s.nextLong();
if (l > 99999 || l < 10000) {
System.out.println("Input error, please input again!");
l = s.nextLong();
}
for (int i = 4; i >= 0; i--) {
a[i] = (int) (l / (long) Math.pow(10, i));
l = (l % (long) Math.pow(10, i));
}
System.out.println();
for (int i = 0, j = 0; i < 5; i++, j++) {
b[j] = a[i];
}
for (int i = 0, j = 4; i < 5; i++, j--) {
if (a[i] != b[j]) {
result = false;
break;
} else {
result = true;
}
}
if (result) {
System.out.println("是回文数");
} else {
System.out.println("不是回文数");
}
}
}