《Java 2實用教程(第5版)實驗指導與習題解答》
ISBN 978-7-302-46687-1
《Java實用教程(第5版)微課版》
ISBN 978-7-302-46425-9
p49
4.程式設計題
(1)編寫應用程式求
1!+2!+...+10!
public static void main(String[] args) {
int sum=0;
int temp=0;
for(int i=1;i<=10;i++) {
temp =i;
// 求階乘
for(int j=1;j<i;j++) {
temp*=j;
}
// 求和
sum+=temp;
}
System.out.println("求1!+2!+...+10!=="+sum);
}
(2)編寫一個應用程式求
100
以内的全部素數
import java.util.Scanner;
public class Fac {
public static void main(String[] args) {
System.out.println("請輸入一個整數:");
Scanner re=new Scanner(System.in);
int num=re.nextInt();
for(int k=2;k<=num;k++) {
if(prime(k)==1) {
System.out.print(" "+k);
}
}
}
static int prime(int n) {
if(n==2) {
return 1;
}
for(int i=2;i<n;i++) {
if(n%i==0) {
return 0;
}
else {
return 1;
}
}
return -1;
}
}
(3)分别用
do-while
和
for
循環計算
1+1/2!+1/3!+1/4!+..+...
的前20項和
public static void main(String[] args) {
double sum=0;
double temp=1;
double i=1;
do {
sum+=temp;
i++;
temp=(1.0/i)*temp;
}while(i<=20);
System.out.println("使用do-while循環計算的sum="+sum);
for(sum=0,i=1,temp=1;i<=20;i++) {
temp=temp*(1.0/i);
sum+=temp;
}
System.out.println("使用for循環計算的sum="+sum);
}
(4)一個數如果恰好等于它的因子之和,這個數就稱為完數。編寫程式求
1000
之内的所有完數
public static void main(String[] args) {
int sum=0,i,j;
for(i=1;i<=1000;i++) {
for(j=1,sum=0;j<i;j++) {
if(i%j==0) {
sum+=j;
}
}
if(sum==i) {
System.out.println("完數:"+i);
}
}
}
(5)編寫應用程式,使用
for循環
語句計算
8+88+888+...
前
10
項之和
public static void main(String[] args) {
int m=8,temp=m;
long sum=0;
for(int i=1;i<=10;i++) {
sum+=temp;
temp=temp*10+m;
}
System.out.println(sum);
}
(6)編寫應用程式,輸出滿足
1+2+3+...+n<8888
的最大正整數
n
public static void main(String[] args) {
int n=1;
long sum=0;
while(true) {
sum+=n;
n++;
if(sum>=8888) {
break;
}
}
System.out.println("滿足條件的最大整數:"+(n-1));
}