一、選擇
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、+
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"); } }