五、编程题
1、编写应用程序求1!+2!+···+10!。
public class F3_1 {
public static void main(String[] args){
int sum=0;
for (int i=1;i<=10;i++) {
int f=1;
for (int j=1;j<=i;j++) {
f*=j;
}
sum+=f;
}
System.out.println("1!+2!+3!+...+10!="+sum);
}
}
运行结果:
1!+2!+3!+...+10!=4037913
2、编写应用程序求100以内的全部素数。
public class F3_2 {
public static void main(String[] args){
int i,j;
System.out.print("100以内的素数有:");
for (j=2;j<=100;j++){
for (i=2;i<=j/2;i++){
if (j % i == 0){
break;
}
}
if (i>j/2){
System.out.print(""+j+" ");
}
}
}
}
运行结果:
100以内的素数有:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
3、分别用do-while循环和for循环计算1+1/2!+1/3!+1/4!+···的前20项之和。
public class F3_3 {
public static void main(String[] args) {
double sum = 1.0;
int n = 2;
do {
double f = 1;
for (int i = 2; i <= n; i++) {
f *= i;
}
sum += 1.0 / f;
n++;
} while (n <= 20);
System.out.println("使用 do-while 循环计算的前 20 项之和为:" + sum);
sum = 1.0;
for (int i = 2; i <= 20; i++) {
double factorial = 1;
for (int j = 2; j <= i; j++) {
factorial *= j;
}
sum += 1.0 / factorial;
}
System.out.println("使用 for 循环计算的前 20 项之和为:" + sum);
}
}
运行结果:
使用 do-while 循环计算的前 20 项之和为:1.7182818284590455
使用 for 循环计算的前 20 项之和为:1.7182818284590455
4、如果一个数恰好等于它的因子之和,则这个数称为完数。编写应用程序求1000之内的所有完数。
public class F3_4 {
public static void main(String[] args) {
int i,j;
System.out.print("1000之内的所有完数:");
for (i = 1; i <= 1000; i++) {
int sum = 0;
for (j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
System.out.print(i + " ");
}
}
}
}
运行结果:
1000之内的所有完数:6 28 496
5、编写应用程序,使用for循环语句计算8+88+888+···的前10项之和。
public class F3_5 {
public static void main(String[] args){
long sum=0,item=8,i=1;
System.out.print("8+88+888+···的前10项之和为:");
for (i=1;i<=10;i++){
sum+=item;
item=item*10+8;
}
System.out.print(sum);
}
}
运行结果:
8+88+888+···的前10项之和为:9876543200
6、编写应用程序,输出满足1+2+3+···+n<8888的最大正整数n。
public class F3_6 {
public static void main(String[] args) {
int sum = 0;
int n = 0;
while (sum < 8888) {
n++;
sum += n;
}
System.out.println("满足 1+2+3+...+n<8888 的最大正整数 n 为:" + (n - 1));
}
}
运行结果:
满足 1+2+3+...+n<8888 的最大正整数 n 为:132