Java經典練習題_Day03


一、選擇

 B    D(死循環)    E(switch)    BC   

二、編程

1、讀入一個整數,表示一個人的年齡。

如果小於6歲,則輸出“兒童”, 6歲到13歲,輸出“少兒”;  14歲到18歲,輸出“青少年”; 18歲到35歲,輸出“青年”; 35歲到50歲,輸出“中年”; 50 歲以上輸出“中老年”。

import java.util.*;
/*
 * 讀入一個整數,表示一個人的年齡。
 * 如果小於6歲,則輸出“兒童”, 
 * 6歲到13歲,輸出“少兒”;  
 * 14歲到18歲,輸出“青少年”; 
 * 18歲到35歲,輸出“青年”; 
 * 35歲到50歲,輸出“中年”; 
 * 50 歲以上輸出“中老年”。
 */
public class AgeChoose {
    public static void main(String[] args) {
        
        while(true){
            System.out.println("請輸入年齡:");
            Scanner s = new Scanner(System.in);
            int Age = s.nextInt();
            
            if(Age < 0 ){
                System.out.println("輸入錯誤!請重新輸入!");
                continue;
            }
            else if(Age >= 0 && Age < 6){   // 如果小於6歲,則輸出“兒童”
                System.out.println("兒童");
                break;
            }
            else if(Age >= 6 && Age <= 13){ // 6歲到13歲,輸出“少兒”
                System.out.println("少兒");
                break;
            }
            else if(Age >= 14 && Age < 18){ // 14歲到18歲,輸出“青少年”
                System.out.println("青少兒");
                break;
            }
            else if(Age >= 18 && Age < 35){ // 18歲到35歲,輸出“青年”
                System.out.println("青年");
                break;
            }            
            else if(Age >= 35 && Age < 50){ // 35歲到50歲,輸出“中年”
                System.out.println("中年");
                break;
            }
            else{                            // 50 歲以上輸出“中老年”
                System.out.println("中老年");
                break;
            }
                            
        }
    }
}

2、讀入一一個整數,如果是1~5之間,則分別輸出5個福娃的名字,否則輸出“北京歡迎你”。

import java.util.*;
//import java.util.regex.*;
/*
 * 讀入一個整數,
 * 如果是1~5之間,則分別輸出5個福娃的名字,
 * 否則輸出“北京歡迎你”。
 * */
public class ZhengShu1_5 {
    public static void main(String[] args) {
        System.out.println("請輸入一個整數:");
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        // 如何判斷輸入的是否是整數?????
        
        switch(a){
        case 1:System.out.println("貝貝");break;
        case 2:System.out.println("晶晶");break;
        case 3:System.out.println("歡歡");break;
        case 4:System.out.println("瑩瑩");break;
        case 5:System.out.println("妮妮");break;
        default:System.out.println("北京歡迎你過!");        
        }
    }
}

3、讀入三個整數,輸出這三個整數中最大的一個.

import java.util.Scanner;
/*
 * 讀入三個整數,輸出這三個整數中最大的一個.
 */
public class MaxOrMin {
    public static void main(String[] args) {
        System.out.println("請輸入3個整數:");
        Scanner s = new Scanner(System.in);
        int[] Arr = new int[2];
        int i = 0;
        // 循環接收輸入的數據
        for(i = 0; i <= 2; i++){ 
            Arr[i] = s.nextInt();
        }
        // 對數據進行判斷
        if(Arr[0] >= Arr[1] && Arr[0] >= Arr[2] )
            System.out.println("最大整數:" + Arr[0]);
        else if(Arr[1] >= Arr[0] && Arr[1] >= Arr[2] )
            System.out.println("最大整數:" + Arr[1]);
        else
            System.out.println("最大整數:" + Arr[2]);
    }
}

4、讀入一一個表示年份的整數,判斷這一年 是否是閏年。如何判斷-一個年份是否是閏年:

1) 如果這個年份能夠被4整除,且不能被100 整除,則這一年是閏年。例如,  1996年是閏年,而相應的,  1993年就不是閏年。
2) 如果這個年份能夠被100整除,則這個數必須要能被400整除,才是閏年。例如,2000 年是閏年,  1900年不是閏年。
 
import java.util.*;
/*
 *讀入一一個表示年份的整數,判斷這一年 是否是閏年。如何判斷-一個年份是否是閏年:
 *1)如果這個年份能夠被4整除,且不能被100 整除,則這一年是閏年。例如,  1996年是閏年,而相應的,  1993年就不是閏年。
 *2)如果這個年份能夠被100整除,則這個數必須要能被400整除,才是閏年。例如,2000 年是閏年,  1900年不是閏年。
 */

public class RunNian {
    public static void main(String[] args) {
        System.out.println("請輸入一個年份:");
        int Age;
        while(true){
            Scanner s = new Scanner(System.in);
            Age = s.nextInt();

            if(Age % 4 == 0 && Age % 100 != 0){ // 被4整除,且不能被100 整除
                System.out.println(Age + "年是閏年");
                continue;
            }
            else if(Age % 100 == 0 && Age % 400 == 0){ // 被100整除,且被400整除
                System.out.println(Age + "年是閏年");
                continue;
            }
            else
                System.out.println(Age + "年不是閏年");
        }
    }
}

5、完成一一個簡單的計算器程序。

程序要求如下:
  1)讀入兩個整數
  2)提示用戶選擇對這兩個整數的操作,即輸出
   1、+
   2、-
   3、*
   4、/
  請輸入您的選擇:
  讀入用戶的選擇,輸出運算結果。
import java.util.*;
/*方法1
 *5、完成一個簡單的計算器程序。程序要求如下:
  1)讀入兩個整數
  2)提示用戶選擇對這兩個整數的操作,即輸出
   1、+
   2、-
   3、*
   4、/
  請輸入您的選擇:
  讀入用戶的選擇,輸出運算結果。
 */
public class Operate4 {    
    public static void main(String[] args) {
        double Num_1, Num_2;
        int Operate = 1;
        System.out.println("請輸入要運算的整數:");
        Scanner s = new Scanner(System.in);
        Num_1 = s.nextDouble();
        Num_2 = s.nextDouble();
        
        System.out.println(" 1、+\n 2、-\n 3、*\n 4、/\n 請輸入您的選擇:");
        Scanner s2 = new Scanner(System.in);
        
        Operate = s2.nextInt();
        if(Operate >4 && Operate < 1)
            System.out.println("運算方式選擇錯誤!");
        else{
            switch(Operate){
            case 1:
                System.out.println(Num_1 + " + " + Num_2 + " = " + (Num_1 + Num_2));break;
            case 2:
                System.out.println(Num_1 + " - " + Num_2 + " = " + (Num_1 - Num_2));break;
            case 3:
                System.out.println(Num_1 + " * " + Num_2 + " = " + (Num_1 * Num_2));break;
            case 4:
                System.out.println(Num_1 + " / " + Num_2 + " = " + (Num_1 / Num_2));break;
       default:System.out.println("符號非法!"); } } } }
import java.util.*;
/*方法2
 *5、完成一個簡單的計算器程序。程序要求如下:
  1)讀入兩個整數
  2)提示用戶選擇對這兩個整數的操作,即輸出
   1、+
   2、-
   3、*
   4、/
  請輸入您的選擇:
  讀入用戶的選擇,輸出運算結果。
 */
public class Switch {    
    public static void main(String[] args) {
        double Num_1, Num_2;
        
        System.out.println("請輸入要運算的整數:");
        Scanner s = new Scanner(System.in);
        Num_1 = s.nextDouble();
        Num_2 = s.nextDouble();
        
        System.out.print(" +\n -\n *\n /\n 請輸入您的選擇:");
        Scanner s2 = new Scanner(System.in);
        String Operate = s2.nextLine();

            switch(Operate){
            case "+":
                System.out.println(Num_1 + " + " + Num_2 + " = " + (Num_1 + Num_2));break;
            case "-":
                System.out.println(Num_1 + " - " + Num_2 + " = " + (Num_1 - Num_2));break;
            case "*":
                System.out.println(Num_1 + " * " + Num_2 + " = " + (Num_1 * Num_2));break;
            case "/":
                System.out.println(Num_1 + " / " + Num_2 + " = " + (Num_1 / Num_2));break;
        }
    }
}

 

6、 托運計費問題:

當貨物重量小於20公斤的時候,收費5元,
 
大於20公斤小於100公斤的時候超出20公斤的部分按每0.2元每公斤計費,
 
如果超出100公斤的時候,超出的部分按照每公斤0.15元計算。
  
讀入貸物的重量,輸出計算之后貨物的運費。

import java.util.*;
/*
 *  托運計費問題:
 *  當貨物重量小於20公斤的時候,收費5元,
 *  大於20公斤小於100公斤的時候超出20公斤的部分按每0.2元每公斤計費,
 *  如果超出100公斤的時候,超出的部分按照每公斤0.15元計算。
 *  讀入貸物的重量,輸出計算之后貨物的運費。
 */
public class YunFei {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("請輸入:");
        int weight = s.nextInt();
        double price = 0;
        
        if(weight < 0)
            System.out.println("輸入不合法");
        else{
            if(weight <= 20){
                price = weight * 0.35;
            }
            else if(weight >= 20 && weight<= 100){
                price = weight * 0.35 + (weight - 20) * 0.5; 
            }
            else{
                price = weight * 0.35 + (weight - 20) * 0.5 + (weight - 100) * 0.8;
            }
        }    
        System.out.println(price);            
    }
}

7、讀入一個三位數,計算其各位數字之和。例如: 123, 各位數字之和為6

import java.util.*;
/*
 * 讀入一個三位數,計算其各位數字之和。
 * 例如: 123, 各位數字之和為6
 */
public class SanWeiShu {
    public static void main(String[] args) {
        System.out.println("請輸入一個三位數:");
        Scanner s1 = new Scanner(System.in);
        int Num = s1.nextInt();
        
        if(Num >= 100 && Num <= 999){
            int Num1 = (Num / 100);                       // 獲得百位上的數字
            int Num2 = (Num - Num1 * 100) / 10;           // 獲得十位上的數字
            int Num3 = Num - ((Num1 * 100) + Num2 * 10);  // 獲得個位上的數字
            int Sum = Num1 + Num2 + Num3;                  // 求和
            System.out.println(Num + "各位數字之和為:" + Sum);
        }
        else
            System.out.println("您輸入的不是3位數!");
        
    }
}

8、計算1+2+3+...+100的和

/*計算1+2+3+...+100的和*/
public class Sum01 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 1; i <= 100; i++){
            sum += i;
        }
        System.out.println("sum = " + sum);
    }
}

9、計算1+3+5+...+99的和

/*計算1+3+5+...+99的和*/
public class Sum02 {
    public static void main(String[] args) {
        int i;
        int sum = 0;
        for(i = 1; i <= 100; i++){
            if(i % 2 == 1)
                sum += i;
        }
        System.out.println("sum = " + sum);
    }
}

10.讀入一個小於10的整數n,輸出它的階乘n!

import java.util.*;
/*讀入一個小於10的整數n,輸出它的階乘n!*/

public class Factorial {
    public static void main(String[] args) {
        System.out.print("請輸入一個10以內的數字:");
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int sum = 1;
        if(n >10 && n < 0){
            for(int i = n; i > 0; i--){
                sum *= i;
            }
            System.out.println(sum);
        }
        else
            System.out.println("輸入錯誤!");
    }
}

11.求100 以內所有能被3整除但不能被5整除的數字的和。

/*求100 以內所有能被3整除但不能被5整除的數字的和*/

public class Division {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        for(i = 0; i <= 100; i++){
            if(i % 3 == 0 && i % 5 != 0)
                sum += i;
        }
        System.out.println("sum = " + sum);
    }
}

12.“百錢買百雞”是我國古代的著 名數學題。

題目這樣描述: 3文錢可以買1只公雞,2文錢可以買一只母雞,1文錢可以買3只小雞。用100文  錢買100只雞,那么各有公雞、母雞、小雞多少只?
 
/*“百錢買百雞”是我國古代的著 名數學題。
 * 題目這樣描述:
 *  3文錢可以買1只公雞,
 *  2文錢可以買一只母雞,
 *  1文錢可以買3只小雞。
 *  用100文  錢買100只雞,
 *  那么各有公雞、母雞、小雞多少只?
 */

public class BuyChicken {
    public static void main(String[] args) {
        int GJ;
        int MJ;
        //int XJ = (100 - GJ - MJ);    //GJ + MJ + XJ == 100;            

        for(GJ = 0; GJ <= 33; GJ++){
            for(MJ = 0; MJ <= 50; MJ++){
                if(GJ * 3 + MJ * 2 + (100 - GJ - MJ)/3.0 == 100)
                    System.out.println("公雞:" + GJ + "    母雞:" + MJ + "    小雞:" + (100 - GJ - MJ));
            }
        }        
    }
}

13.搬磚問題:

 36塊磚,36人搬,男搬4,女搬3,兩個小孩拾1磚,要求一次全搬完,問男、女和小孩各若干?
/*搬磚問題: 
 * 36塊磚,36人搬,
 * 男搬4,女搬3,兩個小孩拾1磚,
 * 要求一次全搬完,
 * 問男、女和小孩各若干?
 */
public class MovingBricks {
    public static void main(String[] args) {
        int Man;
        int Woman;
        
        for(Man = 0; Man <= 9; Man++){
            for(Woman = 0; Woman <= 12; Woman++){
                if(Man * 4 + Woman * 3 + (36 - Man - Woman) / 2 == 36)
                    System.out.println("Man:" + Man + "    Woman:" + Woman + "      Childen:" + (36 - Man - Woman));
            }
        }
    }
}

14.編程找出四位整數abcd 中滿足下述關系的數: (ab+cd) (ab+cd) =abcd

/*編程找出四位整數abed 中滿足下述關系的數: 
 * (ab+cd) (ab+cd) =abcd
 */
public class abcd2 {
    public static void main(String[] args) {

        int Num, a, b, c, d, ab, cd, abcd;

        for(Num = 1000; Num <= 9999; Num++){

            a = Num / 1000;                                // 千位
            b = (Num - a * 1000) / 100;                    // 百位
            c = (Num - a * 1000 - b * 100) / 10;           // 十位
            d = (Num - a * 1000 - b * 100 - c * 10);       // 個位

            ab = (a * 10 + b);
            cd = (c * 10 + d);
            abcd = (ab + cd) * (ab + cd);

            if(abcd == Num)
                System.out.println(Num);    
        }

    }
}

15.讀入一一個整數n,輸出如下圖形:

當輸入n=3時,輸出:
      ★
   ★★★
★★★★★
當輸入n=4時,輸出:
        ★
     ★★★
   ★★★★★
★★★★★★★
 
 
import java.util.*;
/*
讀入一一個整數n,輸出如下圖形:
當輸入n=3時,輸出:
      ★
   ★★★
★★★★★
當輸入n=4時,輸出:
        ★
     ★★★
   ★★★★★
★★★★★★★
*/
public class Star {
    public static void main(String[] args) {
        System.out.println("請輸入:");
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        for(int i = 1; i <= n; i++){
            System.out.println(" "); // 換行
            
            for(int w = 1; w <= (n + 1 - i); w++){ // 打印空格
                System.out.print("    ");
            }
                
            for(int j = 1; j <= (i*2-1); j++){     // 打印星星
                System.out.print("★");
            }
                
        }
    }
}

16.輸出99 乘法表

/*輸出99 乘法表*/
public class ChengFa {
    public static void main(String[] args) {
        for(int i = 1; i <= 9; i++) {
            System.out.println(" ");
            for(int j = 1; j <= 9 - i; j++) {
                System.out.print("    " + i + " * " + j + " = " + i * j);
            }
        }        
    }
}    
public class ClassTest01 {
    public static void main(String[] args) {
        for(int i=1; i<=9; i++){
            for(int j=1; j<=i; j++){
                System.out.print("  " + i + "*" + j + " = " + i*j);
            }
            System.out.println("");
        }
    }
}

17.求水仙花數。 

所謂水仙花數,是指一一個三位數abc,如果滿足a3+ b3+c3=abc,則abc是水仙花數。
 
/*求水仙花數。 
 * 所謂水仙花數,是指一一個三位數abc,
 * 如果滿足a3+ b3+c3=abc,則abc是水仙花數。
 */
public class ShuiXian {
    public static void main(String[] args) {
        int abc = 100;
        
        for(abc = 100; abc <= 999; abc++) {
            int a = abc / 100;
            int b = (abc - a * 100) / 10;
            int c = abc % 10;
            
            if((a *10 + 3 + b * 10 * 3 + c * 10 * 3 ) == abc)
                System.out.println(abc);
        }
    }
}

18.輸入一個整數,計算它各位上數字的和。

注意:是任意位的整數
import java.util.*;
/*
 * 輸入一個整數,計算它各位上數字的和。
 * (注意:是任意位的整數)
 */
public class Sum02 {
    public static void main(String[] args) {
        System.out.print("請輸入任意一個整數:");
        Scanner s = new Scanner(System.in);
        int sum = 0;
        int t = s.nextInt(); 
        
        while(t!=0){
            sum = sum + t % 10;
            t = t / 10;
        }
        System.out.println("各位數字的和:" + sum);
    }
}

19.輸入一 整數A,判斷它是否質數。

import java.util.*;
/*輸入一 整數A,判斷它是否質數。*/
public class PrimeNumber {
    public static void main(String[] args) {
        System.out.println("請輸入一個整數:");
        Scanner s = new Scanner(System.in);
        int A = s.nextInt();
        
        for(int i = 2; i <= A / 2; i++) {
            if(A / i == 0) {
                System.out.println("不是質數");
                break;
            }
            else {
                System.out.println("是質數");
                break;
            }
        }
    }
}

20.如果一個數等 於其所有因子之和,我們就稱這個數為"完數"

例如6的因子為1,2,3, 6=1+2+3, 6就是一一個完數.請編程打印出1000以內所有的完數
/*如果一個數等 於其所有因子之和,我們就稱這個數為"完數"
 * 例如6的因子為1,2,3, 6=1+2+3, 6就是一一個完數.
 * 請編程打印出1000以內所有的完數*/
public class WanShu {
    public static void main(String[] args) {
        int i = 1;
        int j = 1;
        for(i = 1; i <= 1000; i++) {
            int sum = 0;
            for(j = 1; j <= i - 1; j++) {
                if(i % j == 0) {
                    sum += j;
                }
            }
            if(sum == j)
            System.out.println(sum);
        }
    }
}

21.計算圓周率

中國古代數學家研究出了計算圓周率最簡單的辦法:PI=4/1-4/3+4/5-4/ 7+4/9-4/11+4/13-4/15+4/17......這個算式的結果會無限接近於圓周率的值,我國古代數學家祖沖之計算出,圓周率在3.1415926和3.1415927之間,請編程計算,要想得到這樣的結果,他要經過多少次加減法運算?
 
/*計算圓周率
 * 中國古代數學家研究出了計算圓周率最簡單的辦法:
 * PI=4/1-4/3+4/5-4/ 7+4/9-4/11+4/13-4/15+4/17......
 * 這個算式的結果會無限接近於圓周率的值,
 * 我國古代數學家祖沖之計算出,圓周率在3.1415926和3.1415927之間,
 * 請編程計算,要想得到這樣的結果,他要經過多少次加減法運算?*/
public class Pai {
    public static void main(String[] args) {         
        final double a = 4.0; //表示被除數
        double PI = 0;  //表示圓周率        
        int b = -1;     //表示除數        
        int count = 0;  //加減法次數計數變量
 
        while (PI >= 3.1415927 || PI <= 3.1415926) {
            b +=2;
            PI = PI + a/b;
            count++;
            
            b += 2;
            PI = PI - a/b; 
            count++;
        }
        System.out.println("總共需要經過" + count +"次加減法運算");
    }
}

22.faibonacci

已知: faibonacci ( 費波那契)數列的前幾個數分別為0,1, 1,2,3,..... 從第3項開始,每一項都等於前兩項的和。讀入一一個整數n,編程求出此數列的前n項。
 
import java.util.*;
/*已知: faibonacci ( 費波那契)數列的前幾個數分別為0,1, 1,2,3,..... 
 * 從第3項開始,每一項都等於前兩項的和。
 * 讀入一個整數n,編程求出此數列的前n項。*/
public class Faibonacci {
    public static void main(String[] args) {
        System.out.print("請輸入一個整數n:");
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int[] a = new int[n];
        a[0] = 0;
        a[1] = 1;
        System.out.println(a[0] + "\n" + a[1]);
        
        if(n < 2) {
            System.out.println("請輸入大於2的整數!");
        }
        else {
            for(int i = 2; i < n; i++) {
                a[i] = a[i - 1] + a[i - 2];
                System.out.print(a[i]);
            }
        }
    }
}

 

23.一個int 類型的整數由32個二進制位組成,每個二進制位的值要么為0要么為1。

要求讀入一個int類型的整數n,計算它的32個二進制位中總共有多少位為1?
import java.util.*;
/*一個int 類型的整數由32個二進制位組成,每個二進制位的值要么為0要么為1。
 * 要求讀入一個int類型的整數n,計算它的32個二進制位中總共有多少位為1?
 */
public class Int {
    public static void main(String[] args) {
        System.out.print("請輸入一個int類型的整數:");
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int sum = 0;
        int n1 = n;
        
        while(n != 0) {
            sum = sum + n % 2;
            n = n / 2;
        }
        System.out.println(n1 + "的二進制位中總共有" + sum + "位為1");
    }
}

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM