文章目錄
- 1.編寫程式數一下 1到 100 的所有整數中出現多少個數字9
- 2.輸出 1000 - 2000 之間所有的閏年
- 3.列印 1 - 100 之間所有的素數
- 4.給定一個數字,判定一個數字是否是素數
- 5.根據輸入的年齡, 來列印出目前年齡的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
- 6.列印 X 圖形
- 7.完成猜數字遊戲 ,使用者輸入數字,判斷該數字是大于,小于,還是等于随機生成的數字,等于的時候退出程式。
- 8.求出0~999之間的所有“水仙花數”并輸出。(“水仙花數”是指一個三位數,其各位數字的立方和确好等于該數本 身,如;153=1+5+3?,則153是一個“水仙花數“。)
- 9.計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
- 10.求兩個正整數的最大公約數
- 11.求一個整數,在記憶體當中存儲時,二進制1的個數
- 12.擷取一個數二進制序列中所有的偶數位和奇數位, 分别輸出二進制序列
- 13.編寫代碼模拟三次密碼輸入的場景。 最多能輸入三次密碼,密碼正确,提示“登入成功”,密碼錯誤, 可以重新輸 入,最多輸入三次。三次均錯,則提示退出程式
- 15.輸出一個整數的每一位,如:123的每一位是1 , 2 , 3,采用遞歸方法!
- 16.輸入乘法口訣表
- 17.有一組資料,隻有一個數字是出現一次,其他是兩次,請找出這個數字。
- 18.求斐波那契數列的第n項。(疊代實作)
【Java邏輯控制】——分支結構丶循環結構經典必刷題
#目錄
1.編寫程式數一下 1到 100 的所有整數中出現多少個數字9
這道題做題的關鍵在于 如何找到 判斷條件
1.找到個位是9的數:比如 19,29,讓這個數 去%10 他們的餘數都是 9
2.知道十位是9的數:比如 91, 93,讓這個數去/10 他們的結果都等于 9
2.輸出 1000 - 2000 之間所有的閏年
這道題做題的關鍵:我們首先要知道閏年分為 普通閏年 和 世紀閏年
1.普通閏年:能被 4 整除 并且是 100 的 倍數
2.世紀閏年:能被 100 整除 并且 能夠 被 400整除
3.列印 1 - 100 之間所有的素數
這道題做題的關鍵;我們需要明白什麼是 素數。
素數:能夠被 1 和 他 自身 整除的 數
注意:1 不是 素數
。
4.給定一個數字,判定一個數字是否是素數
這道題和第三道題思路一樣,這裡我們直接上代碼
這裡還有第二種方法
5.根據輸入的年齡, 來列印出目前年齡的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
6.列印 X 圖形
這道題是牛客上面的一道題這裡我給大家上一下牛客連結:
https://www.nowcoder.com/practice/83d6afe3018e44539c51265165806ee4 這道題的做題思路是什麼呢,在這裡我給大家畫個圖友善大家了解
圖有點潦草哈,各位老鐵,我相信你們能夠看懂的,抱歉
這裡輸入的 n 為 5,對應 4 個 下标,從左邊開始看,第一個 x 所對應的判斷條件是
'if(i ==j) 從右邊開 x 所對應的判斷條件是 if(i+j == n-1)
7.完成猜數字遊戲 ,使用者輸入數字,判斷該數字是大于,小于,還是等于随機生成的數字,等于的時候退出程式。
知道題直接給大家上代碼了,大家可以複制去跑一跑,也是比較有趣
8.求出0~999之間的所有“水仙花數”并輸出。(“水仙花數”是指一個三位數,其各位數字的立方和确好等于該數本 身,如;153=1+5+3?,則153是一個“水仙花數“。)
這道題,我給大家一個簡單且粗暴的方法且看代碼
9.計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
10.求兩個正整數的最大公約數
這裡 注意! 最大公約數 和 最小公倍數給大家上個圖
11.求一個整數,在記憶體當中存儲時,二進制1的個數
這裡使用 按位與 方法
這裡給大家複習一個 位運算符
按位與 & : 如果兩個二進制位都是 1, 則結果為 1, 否則結果為 0.
按位或 | : 如果兩個二進制位都是 0, 則結果為 0, 否則結果為 1.
按位異或 ^ : 如果兩個數字的二進制位相同, 則結果為 0, 相異則結果為 1.
12.擷取一個數二進制序列中所有的偶數位和奇數位, 分别輸出二進制序列
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println(“奇數位:”);
for (int i = 31; i>=1 ; i-=2) {
System.out.println(n>>i&1);
}
System.out.println(“偶數位:”);
for (int i = 30; i >=2 ; i-=2) {
System.out.println(n>>i&1);
}
}
13.編寫代碼模拟三次密碼輸入的場景。 最多能輸入三次密碼,密碼正确,提示“登入成功”,密碼錯誤, 可以重新輸 入,最多輸入三次。三次均錯,則提示退出程式
public static void main(String[] args) {
String passWord = “1234”;
Scanner scanner = new Scanner(System.in);
System.out.println(“請輸入密碼”);
int relyTime = 3;//有3次機會
for (int i = 0; i < 3; i–) {
String input = scanner.nextLine();
if(input.equals(passWord)){
System.out.println(“輸入正确!”);
break;
}
else {
relyTime–;
System.out.println(“輸入錯誤,請重新輸入,還有” + relyTime + “次機會”);
}
}
if(relyTime == 0) {
System.out.println(“輸入次數用完,退出程式”);
}
}
15.輸出一個整數的每一位,如:123的每一位是1 , 2 , 3,采用遞歸方法!
知道題無非就是 哪一個數來 /10 %10
如果一個數小于了10 直接%10 否者/10
public static void main(String[] args) {//輸出一個整數的每一位,如:123的每一位是1 , 2 , 3
//用遞歸的方法無非就是/10 % 10
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
print(n);
}
public static void print(int n) {//構造個遞歸方法
if(n < 10) {
System.out.println(n % 10 + " ");
}else {
print(n /10);
System.out.println(n % 10 + " ");
}
}