1. 程式人生 > 其它 >課後習題(Java程式設計精編教程P52)

課後習題(Java程式設計精編教程P52)

課後習題(Java程式設計精編教程P52)

  1. 為了節約用電,將使用者的用電量分為三個區間,針對不同的區間給出不同的收費標準。對於1至90千瓦的電量,每千瓦0.6元;對於91至150千瓦的電量,每千瓦1.1元;對於大於151千瓦的電量,每千瓦1.7元。編寫一個Java程式。在主類的main方法中,輸入使用者的用電量,程式輸出電費。

    import java.util.Scanner;
    
    
    public class ElectricCharge {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner in = new Scanner(System.in);
    		int Eletric = 0;
    		double Charge = 0;
    		Eletric = in.nextInt();
    		if (Eletric <= 90 & Eletric >=1) {
    			Charge = 0.6*Eletric;
    		} else if(Eletric>=90 & Eletric<=150) {
    			Charge = 0.6*90+1.1*(Eletric-90);
    		}else if(Eletric>150){
    			Charge = 0.6*90+1.1*(150-90)+1.7*(Eletric-150);
    		}else {
    			Charge = 0;
    		}
    		System.out.println(Charge);
    	}
    
    }
    
  2. 一個數如果恰好等於它的因子之和,這個數就被稱為“完數”。編寫一個Java應用程式,輸出1000之內的所有“完數”。

    public class WanShuFind {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		for (int i = 1; i < 1000; i++) {
    			int sum = 0;
    			for (int j = 1; j < i; j++) {
    				if (i%j==0) {
    					sum += j;
    				}
    			}
    			if (sum == i) {
    				System.out.println(i);
    			}
    		}
    	}
    
    }
    

    輸出結果為:

    6
    28
    496
    
  3. 編寫一個程式求滿足1+2!+3!+……+n!<=9876的最大整數n。

    public class MaxNumberFind {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		int i = 0;
    		do {
    			i++;
    		} while (factSum(i)<9876);
    		System.out.println(i-1);
    	}
        
    	public static int fact(int n) {
    		int f = 1;
    		for (int i = 1; i <= n; i++) {
    			f *= i;
    		}
    		return f;
    	}
        
    	public static int factSum(int n) {
    		int sum = 0;
    		for (int i = 1; i <= n; i++) {
    			sum += fact(i);
    		}
    		return sum;
    	}
    }
    
    

    輸出:

    7