A+B
【題目描述】
歡迎開啟演算法 OJ 題的大門,本題為經典的 A+B
A+B 入門題,我們會以此題為示例介紹藍橋云課 OJ 系統的正確使用方法,
輸入兩個正整數 A,B,請你計算 A+B,并輸出,
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int a = scan.nextInt(); int b = scan.nextInt(); System.out.println(a+b); scan.close(); } }
MP3儲存
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
如果一個 MP3 檔案占用磁盤的大小是 4MB,小藍的硬碟還剩下 100GB 的空間,請問他還可以放多少個這樣的 MP3 檔案?
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(25600); scan.close(); } }
單詞分析
【題目描述】
小藍正在學習一門神奇的語言,這門語言中的單詞都是由小寫英文字母組 成,有些單詞很長,遠遠超過正常英文單詞的長度,小藍學了很長時間也記不住一些單詞,他準備不再完全記憶這些單詞,而是根據單詞中哪個字母出現得最多來分辨單詞,
現在,請你幫助小藍,給了一個單詞后,幫助他找到出現最多的字母和這 個字母出現的次數,
輸入描述
輸入一行包含一個單詞,單詞只由小寫英文字母組成,
對于所有的評測用例,輸入的單詞長度不超過 1000,
輸出描述
輸出兩行,第一行包含一個英文字母,表示單詞中出現得最多的字母是哪 個,如果有多個字母出現的次數相等,輸出字典序最小的那個,
第二行包含一個整數,表示出現得最多的那個字母在單詞中出現的次數,
輸入輸出樣例
示例 1
輸入
lanqiao
輸出
a 2
示例 2
輸入
longlonglongistoolong
輸出
o 6
運行限制
最大運行時間:1s
最大運行記憶體: 256M
【分析與解答】
這道題我一開始想直接在字串上搞動作,后來發現這個方法有個什么問題,就是會搞亂字串的順序,后來發現可以用陣列索引的方式,這樣就簡單多了
先統計每個字符所在的位置出現的次數
然后在作出比較就可以了
這樣做就簡化了統計之后鎖定回應位置的事情
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... String temp=scan.nextLine(); int a[]=new int[26]; for(int i=0;i<temp.length();i++){ a[temp.charAt(i)-'a']++; } int max=0; char ch='a'; for(int i=0;i<a.length;i++){ if(a[i]>max){ max=a[i]; ch=(char)('a'+i); } } System.out.println(ch); System.out.println(max); scan.close(); } }
成績統計
【題目描述】
小藍給學生們組織了一場考試,卷面總分為 100 分,每個學生的得分都是一個 0 到 100 的整數,
如果得分至少是 60 分,則稱為及格,如果得分至少為 85 分,則稱為優秀,
請計算及格率和優秀率,用百分數表示,百分號前的部分四舍五入保留整 數,
輸入描述
輸入的第一行包含一個整數 n\ (1 \leq n \leq 10^4)n (1≤n≤10
4
),表示考試人數,
接下來 nn 行,每行包含一個 0 至 100 的整數,表示一個學生的得分,
輸出描述
輸出兩行,每行一個百分數,分別表示及格率和優秀率,百分號前的部分 四舍五入保留整數,
輸入輸出樣例
示例
輸入
7
80
92
56
74
88
100
0
copy
輸出
71%
43%
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int n=scan.nextInt(); int a[]=new int[2]; for(int i=0;i<n;i++){ int temp=scan.nextInt(); if(temp>=85){ a[0]++; }else if(temp>=60){ a[1]++; } } System.out.println(Math.round((double)(a[1]+a[0])*100/n)+"%"); System.out.println(Math.round((double)a[0]*100/n)+"%"); scan.close(); } }
最短路
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
如下圖所示,GG 是一個無向圖,其中藍色邊的長度是 11、橘色邊的長度是 22、綠色邊的長度是 33,

則從 AA 到 SS 的最短距離是多少?
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(6); scan.close(); } }
門牌制作
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小藍要為一條街的住戶制作門牌號,
這條街一共有 20202020 位住戶,門牌號從 11 到 20202020 編號,
小藍制作門牌的方法是先制作 00 到 99 這幾個數字字符,最后根據需要將字符粘貼到門牌上,例如門牌 1017 需要依次粘貼字符 1、0、1、71、0、1、7,即需要 11 個字符 00,22 個字符 11,11 個字符 77,
請問要制作所有的 11 到 20202020 號門牌,總共需要多少個字符 22?
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int count=0; String aString=""; for (int i = 1; i <=2020; i++) { aString=i+""; for (int j = 0; j < aString.length(); j++) { if(aString.charAt(j)=='2') { count++; } } } System.out.println(count); scan.close(); } }
購物單
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小明剛剛找到作業,老板人很好,只是老板夫人很愛購物,老板忙的時候經常讓小明幫忙到商場代為購物,小明很厭煩,但又不好推辭,
這不,大促銷又來了!老板夫人開出了長長的購物單,都是有打折優惠的,
小明也有個怪癖,不到萬不得已,從不刷卡,直接現金搞定,
現在小明很心煩,請你幫他計算一下,需要從取款機上取多少現金,才能搞定這次購物,
取款機只能提供 100100 元面額的紙幣,小明想盡可能少取些現金,夠用就行了, 你的任務是計算出,小明最少需要取多少現金,
以下是讓人頭疼的購物單,為了保護隱私,物品名稱被隱藏了,
**** 180.90 88折
**** 10.25 65折
**** 56.14 9折
**** 104.65 9折
**** 100.30 88折
**** 297.15 半價
**** 26.75 65折
**** 130.62 半價
**** 240.28 58折
**** 270.62 8折
**** 115.87 88折
**** 247.34 95折
**** 73.21 9折
**** 101.00 半價
**** 79.54 半價
**** 278.44 7折
**** 199.26 半價
**** 12.97 9折
**** 166.30 78折
**** 125.50 58折
**** 84.98 9折
**** 113.35 68折
**** 166.57 半價
**** 42.56 9折
**** 81.90 95折
**** 131.78 8折
**** 255.89 78折
**** 109.17 9折
**** 146.69 68折
**** 139.33 65折
**** 141.16 78折
**** 154.74 8折
**** 59.42 8折
**** 85.44 68折
**** 293.70 88折
**** 261.79 65折
**** 11.30 88折
**** 268.27 58折
**** 128.29 88折
**** 251.03 8折
**** 208.39 75折
**** 128.88 75折
**** 62.06 9折
**** 225.87 75折
**** 12.89 75折
**** 34.28 75折
**** 62.16 58折
**** 129.12 半價
**** 218.37 半價
**** 289.69 8折
需要說明的是,88 折指的是按標價的 88% 計算,而 8 折是按 80% 計算,余者類推, 特別地,半價是按 50% 計算,
請輸出小明要從取款機上提取的金額,單位是元,
【分析與解答】
很唬人的一道題,其實沒啥技術含量,根本不用動用編程,用execl解決就可以了

【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(5200); scan.close(); } }
空間
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小藍準備用 256MB的記憶體空間開一個陣列,陣列的每個元素都是 32 位 二進制整數,如果不考慮程式占用的空間和維護記憶體需要的輔助空間,請問 256MB 的空間可以存盤多少個 32 位二進制整數?
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a=256*8*1024*1024/32; //在此輸入您的代碼... System.out.println(Math.abs(a)); scan.close(); } }
跑步
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小藍每天都鍛煉身體,
正常情況下,小藍每天跑 1 千米,如果某天是周一或者月初(1 日),為了激勵自己,小藍要跑 2千米,如果同時是周一或月初,小藍也是跑 2 千米,
小藍跑步已經堅持了很長時間,從 2000 年 1月 1 日周六(含)到 2020 年 10 月 1 日周四(含),請問這段時間小藍總共跑步多少千米?
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
這道題我建議也是用execl解決
1.新建一個Excel檔案
2.填充2000年1月1日到2020年10月1日
3.通過單元格格式中在日期后加上對應的星期數 4.單元格行數記為h;查找“星期一”,找到的數量記為a; 查找“月1日”(不能是1日,否則如11日也會計入),找到的數量記為b;查找“月1日星期一”,找到的數量記為c;答案n=h+a+b-c;
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(8879); scan.close(); } }
蛇形填數
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
如下圖所示,小明用從 11 開始的正整數“蛇形”填充無限大的矩陣,
1 2 6 7 15 ...
3 5 8 14 ...
4 9 13 ...
10 12 ...
11 ...
...
容易看出矩陣第二行第二列中的數是 55,請你計算矩陣中第 2020 行第 2020 列的數是多少?
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
這道題是來回繞,那只要跟著他一起繞就可以了

【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(761); scan.close(); } }
棋盤放麥子
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
你一定聽說過這個故事,國王對發明國際象棋的大臣很佩服,問他要什么報酬,大臣說:請在第 1 個棋盤格放 11 粒麥子,在第 2 個棋盤格放 2 粒麥子,在第 3 個棋盤格放 4 粒麥子,在第 4 個棋盤格放 8 粒麥子,......后一格的數字是前一格的兩倍,直到放完所有棋盤格(國際象棋共有 64 格),
國王以為他只是想要一袋麥子而已,哈哈大笑,
當時的條件下無法準確計算,但估算結果令人吃驚:即使全世界都鋪滿麥子也不夠用!
請你借助計算機準確地計算,到底需要多少粒麥子,
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; import java.math.BigInteger; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... BigInteger a =new BigInteger("0"); BigInteger b = new BigInteger("2"); for (int i = 0; i < 64; i++) { a = a.add(b.pow(i)); } System.out.println(a); scan.close(); } }
特別數的和
【題目描述】
小明對數位中含有 2、0、1、9 的數字很感興趣(不包括前導 0),在 1 到 40 中這樣的數包括 1、2、9、10 至 32、39 和 40,共 28 個,他們的和是 574,
請問,在 1 到 n 中,所有這樣的數的和是多少?
輸入描述
輸入格式:
輸入一行包含兩個整數 n(1 ≤ n ≤ 10^4)
輸出描述
輸出一行,包含一個整數,表示滿足條件的數的和,
輸入輸出樣例
示例
輸入
40
輸出
574
運行限制
最大運行時間:1s
最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(getContains(scan.nextInt())); scan.close(); } public static int getContains(int num) { int total = 0; if(num>=1 && num<=10000) { for(int i=0;i<=num;i++) { if((i+"").indexOf("0")!=-1 || (i+"").indexOf("1")!=-1 || (i+"").indexOf("2")!=-1 || (i+"").indexOf("9")!=-1) { total += i; } } } return total; } }
質數
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
我們知道第一個質數是 2、第二個質數是 3、第三個質數是 5……
請你計算第 2019個質數是多少?
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int count=0; for(int i=2;i<Integer.MAX_VALUE;i++){ if(judge(i)){ count++; } if(count==2019){ System.out.println(i); break; } } scan.close(); } public static boolean judge(int a){ for(int i=2;i<=Math.sqrt(a);i++){ if(a%i==0){ return false; } } return true; } }
奇數倍數
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
請你找到最小的整數 X同時滿足:
X是 2019的整倍數;
X的每一位數字都是奇數,
運行限制
最大運行時間:1s
最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... for(long i= 2019;i<Long.MAX_VALUE;i=i+2019){ if(judge(i)){ System.out.println(i); break; } } scan.close(); } public static boolean judge(long a){ String res=a+""; for(int i=0;i<res.length();i++){ if((res.charAt(i)-'0')%2==0){ return false; } } return true; } }
排序
【題目描述】
給定一個長度為 NN 的陣列 AA,請你先從小到大輸出它的每個元素,再從大到小輸出它的每個元素,
輸入描述

輸出描述
輸出共兩行,每行包含 NN 個整數,表示答案,
輸入輸出樣例
示例 1
輸入
5 1 3 2 6 5
輸出
1 2 3 5 6 6 5 3 2 1
運行限制
- 最大運行時間:3s
- 最大運行記憶體: 128M
【分析與解答】
這道題好像用陣列和Arrays會超時
【Java語言實作】
import java.awt.List; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int n=scan.nextInt(); ArrayList<Integer> list=new ArrayList<>(); for(int i=0;i<n;i++) { list.add(scan.nextInt()); } Collections.sort(list); for(int i=0;i<n;i++) { System.out.print(list.get(i)+" "); } System.out.println(); for(int i=n-1;i>=0;i--) { System.out.print(list.get(i)+" "); } } }
回文判定
【題目描述】

輸入描述

輸出描述

輸入輸出樣例
示例 1
輸入
abcba
輸出
Y
示例 2
輸入
abcbb
輸出
N
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... String s=scan.nextLine(); if(new StringBuffer(s).reverse().toString().equals(s)){ System.out.println("Y"); }else{ System.out.println("N"); } scan.close(); } }
等引數列
【題目描述】

輸入描述

輸出描述
輸出一個整數表示答案,
輸入輸出樣例
示例
輸入
5 2 6 4 10 20
輸出
10
樣例說明: 包含 2、6、4、10、20 的最短的等引數列是 2、4、6、8、10、12、14、16、 18、20,
【分析與解答】
【方法一】
這道題先排序,然后默認兩個數字之間最小的是等引數列中的公差
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] nums = new int[n]; for (int i = 0; i < n; i++) { nums[i] = sc.nextInt(); } Arrays.sort(nums); int min = Integer.MAX_VALUE; for (int i = 1; i < n; i++) { if (nums[i] - nums[i - 1] < min) { min = nums[i] - nums[i - 1]; } } try { int res = (nums[n - 1] - nums[0]) / min + 1; System.out.println(res); } catch (Exception e) { System.out.println(n); } sc.close(); } }
相乘
【題目描述】

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【方法一】
一開始以為要用大整數,結果發現沒有超過long的范圍,所以用long暴力求解就行
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... long num = 0; for (long i = 1; i <= 1000000007; i++) { if (i * 2021 % 1000000007 == 999999999) { num = i; System.out.println(num); return; } } scan.close(); } }
四平方和
【題目描述】

輸入描述

輸出描述
要求輸出 4 個非負整數,按從小到大排序,中間用空格分開
輸入輸出樣例
示例
輸入
12
輸出
0 2 2 2
運行限制
- 最大運行時間:3s
- 最大運行記憶體: 256M
【分析與解答】
【方法一】
暴力求解,四層回圈,但是這里有個問題用(int)Math.sqrt(num)不會超時,Math.sqrt(num)會超時
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此輸入您的代碼... int num = scan.nextInt(); int temp=(int)Math.sqrt(num); for (int a = 0; a <= temp; a++) { for (int b = a; b <= temp; b++) { for (int c = b; c <= temp; c++) { for (int d = c; d <= temp; d++) { if (a * a + b * b + c * c + d * d == num) { System.out.println(a + " " + b + " " + c + " " + d); return; } } } } } scan.close(); } }
網友年齡
【題目描述】

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【方法一】
這道題其實沒啥難度,跟著題目的描述一起走就行了
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此輸入您的代碼... int count = 0; for (int friend = 27; friend <= 99; friend++) { int sun = friend - 27; int friendchange = Integer.parseInt(new StringBuffer(friend + "").reverse().toString()); if (friendchange == sun) { count++; } } System.out.println(count); scan.close(); } }
煤球數目
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
有一堆煤球,堆成三角棱錐形,具體: 第一層放 11 個, 第二層 33 個(排列成三角形), 第三層 66 個(排列成三角形), 第四層 1010 個(排列成三角形), .... 如果一共有 100100 層,共有多少個煤球?
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
這道題目的數字是這樣
1 3 6 10
1 1+2 3+3 6+4
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int count=0; int num=0; int sum=0; for(int i=0;i<101;i++){ num+=count; count++; sum=sum+num; } System.out.println(sum); scan.close(); } }
三角形描述
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,

如上圖所示,圖中的所有小方格面積都是 11,
那么,圖中的三角形面積應該是多少呢?
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
這道題目用正方形減去旁邊三個三角形面積即可
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(64-16-12-8); scan.close(); } }
第39級臺階
【題目描述】
題目描述
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小明剛剛看完電影《第 3939 級臺階》,離開電影院的時候,他數了數禮堂前的臺階數,恰好是 3939 級!
站在臺階前,他突然又想著一個問題:
如果我每一步只能邁上 11 個或 22 個臺階,先邁左腳,然后左右交替,最后一步是邁右腳,也就是說一共要走偶數步,那么,上完 3939 級臺階,有多少種不同的上法呢?
請你利用計算機的優勢,幫助小明尋找答案,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println((step(39)+1)/2); scan.close(); } public static long step(int num){ if(num==1){ return 1; } if(num==2){ return 2; } return step(num-1)+step(num-2); } }
平方和
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小明對數位中含有 2、0、1、92、0、1、9 的數字很感興趣,在 11 到 4040 中這樣的數包括 1、2、9、101、2、9、10 至 32、3932、39 和 4040,共 2828 個,他們的和是 574574,平方和是 1436214362,
注意,平方和是指將每個數分別平方后求和,
請問,在 11 到 20192019 中,所有這樣的數的平方和是多少?
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... Long result = 0l; for (int i = 1; i <= 2019; i++) { String s = new String("" + i + ""); if (s.contains("0") || s.contains("1") || s.contains("2") || s.contains("9")) { result += (long)Math.pow(i, 2); } } System.out.println(result); scan.close(); } }
錯誤票據
【題目描述】

輸入描述

輸出描述

輸入輸出樣例
示例
輸入
2 5 6 8 11 9 10 12 9
輸出
7 9
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 64M
【分析與解答】
首先先把所有的數字都列到一個陣列里
然后查找兩個數字相同的數字和前后差2的數字
【Java語言實作】
import java.util.Scanner; import java.util.*; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner sc= new Scanner(System.in); ArrayList<Integer> a=new ArrayList<>(); int n=sc.nextInt(); sc.nextLine();//吸收掉整數后面的換行符 for(int i=0;i<n;i++){ String s=sc.nextLine(); String[] x=s.split(" "); //將字串一空格分割成若干個字串,回傳一個字串陣列 for(int j=0;j<x.length;j++){ a.add(Integer.parseInt(x[j])); } } int[] b=new int[a.size()]; for(int i=0;i<a.size();i++){ b[i]=a.get(i); } Arrays.sort(b); int x=0;//相同 int y=0;//空掉 for(int i=1;i<a.size();i++){ if(b[i]-b[i-1]==0){ x=b[i]; } if(b[i]-b[i-1]==2){ y=b[i]-1; } } System.out.println(y+" "+x); } }
第幾天
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; import java.util.Calendar; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR,2000); calendar.set(Calendar.MONTH,Calendar.MAY); calendar.set(Calendar.DATE,4); System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); scan.close(); } }
猜年齡
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); A:for(int i=1;i<=99;i++) { for(int j=1;j<=i+8;j++) { if(i*j==(i+j)*6) { System.out.println(i); break A; } } } scan.close(); } }
數列求值
【題目描述】

【分析與解答】
20190324 這個數過于龐大 無論是遞回還是迭代 程式都無法正常運行
而且int 、 long、BigDecimal等都無法、承載這么大的數 * 題目要求我們只取最后四位
那我們可以對每次運算出來的結果 %10000 這樣每次結果就都保留最后四位數字
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { int a = 1,b = 1,c = 1,d = 0; for(int i = 4;i<=20190324;i++){ d = (a+b+c)%10000; a = b; b = c; c = d; } System.out.println(d); } }
字符計數
【題目描述】
給定一個單詞,請計算這個單詞中有多少個元音字母,多少個輔音字母,
元音字母包括 a, e, i, o, u,共五個,其他均為輔音字母,
輸入描述
輸入格式:
輸入一行,包含一個單詞,單詞中只包含小寫英文字母,單詞中的字母個數不超過 100,
輸出描述
輸出兩行,第一行包含一個整數,表示元音字母的數量,
第二行包含一個整數,表示輔音字母的數量,
輸入輸出樣例
示例
輸入
lanqiao
輸出
4 3
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str=scan.next(); int a=0,b=0; for(int i=0;i<str.length();i++) { if(str.charAt(i)=='a'||str.charAt(i)=='e'||str.charAt(i)=='i'||str.charAt(i)=='o'||str.charAt(i)=='u') { a++; } else { b++; } } System.out.println(a); System.out.println(b); scan.close(); } }
猜生日
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { //在此輸入您的代碼... int i,j,sum; for(i=1900;i<2012;i++){ for(j=1;j<30;j++){ sum=i*10000+600+j; if(sum%2012==0 && sum%3==0 && sum%12==0){ System.out.println(sum); } } } } }
取位數
【題目描述】

import java.util.*; public class Main { static int len(int x){ if(x<10) return 1; return len(x/10)+1; } // 取x的第k位數字 static int f(int x, int k){ if(len(x)-k==0) return x%10; return ______________________; //填空 } public static void main(String[] args) { int x = 23513; //System.out.println(len(x)); System.out.println(f(x,3)); System.out.println(f(893275,2)); } }
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 import java.util.*; public class Main { static int len(int x){ if(x<10) return 1; return len(x/10)+1; } // 取x的第k位數字 static int f(int x, int k){ if(len(x)-k==0) return x%10; return (int)(x/Math.pow(10,len(x)-k))%10; //填空 } public static void main(String[] args) { int x = 23513; //System.out.println(len(x)); System.out.println(f(x,3)); System.out.println(f(893275,2)); } }
猴子分香蕉
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { for(int i = 1;;i++){ int b = i; if(b % 5 == 1){ b = (b-1)/5*4; if(b % 5 ==2){ b = (b-2)/5*4; if(b % 5 == 3){ b = (b-3)/5*4; if(b % 5 == 4){ b = (b-4)/5*4; if(b % 5 == 0 && b >= 5){//最少也有五個香蕉 System.out.println(i); break; } } } } } } } }
求和
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int sum=0; for(int i=1;i<=2019;i++){ if((i+"").contains("2")||(i+"").contains("0")||(i+"").contains("1")||(i+"").contains("9")){ sum=sum+i; } } System.out.println(sum); scan.close(); } }
找素數
【題目描述】

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int count=0; for(int i=2;;i++){ if(judge(i)){ count++; } if(count==100002){ System.out.println(i); break; } } scan.close(); } public static boolean judge(int n){ for(int i=2;i<=(int)Math.sqrt(n);i++){ if(n%i==0){ return false; } } return true; } }
第幾個幸運數字
【題目描述】

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
這道題用除法來做的話會超時,所以需要用逆向思維Math.pow方法減少運算次數
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { int count = 0; Long l = 59084709587505L; for (long i = 0; Math.pow(3, i) <= l; i++) { for (int j = 0; Math.pow(5, j) <= l; j++) { for (int j2 = 0; Math.pow(5, j2) <= l; j2++) { if (Math.pow(3, i)*Math.pow(5, j)*Math.pow(7, j2) <= l) { count++; } } } } //第一次全0是沒有意義的,要減去 System.out.println(count-1); } }
次數差
【題目描述】
x 星球有 26 只球隊,分別用 a ~ z 的 26 個字母代表,他們總是不停地比賽,
在某一賽段,哪個球隊獲勝了,就記錄下代表它的字母,這樣就形成一個長長的串,
國王總是詢問:獲勝次數最多的和獲勝次數最少的有多大差距?(當然,他不關心那些一次也沒獲勝的,認為他們在怠工罷了)
輸入描述
輸入,一個串,表示球隊獲勝情況(保證串的長度 < 1000),
輸出描述
要求輸出一個數字,表示出現次數最多的字母比出現次數最少的字母多了多少次,
輸入輸出樣例
示例
輸入
abaabcaa
輸出
4
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; import java.util.*; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... String s=scan.next(); int arr[]=new int[26]; for (int i = 0; i <s.length(); i++) { arr[s.charAt(i)-'a']++; } int min = arr[0],max = 0; for (int i = 0; i < arr.length; i++) { if (arr[i]!=0) { min = Math.min(arr[i], min); max = Math.max(arr[i], max); } } System.out.println(max-min); scan.close(); } }
回家路費
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int day=0; int sum=0; int coin=1;; while(sum<108){ sum+=coin; day++; coin+=2; } System.out.println(day); scan.close(); } }
烏托邦樹
【題目描述】
題目描述
實作一個演算法得到烏托邦樹的高度,介紹如下:
烏托邦樹每年經歷 2 個生長周期,每年春天,它的高度都會翻倍,每年夏天,它的高度都會增加 1 米,
對于一顆在春天開始時種下的高 1 米的樹,問經過指定周期后,樹的高度為多少,
輸入描述

輸出描述
輸出一個數字,為經過指定周期后樹的高度,
輸入輸出樣例
示例
輸入
3
輸出
6
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=scan.nextInt(); long start=1; for(int i=0;i<num;i++){ if(i%2==0){ start=start*2; }else{ start++; } } System.out.println(start); scan.close(); } }
大寫
【題目描述】
給定一個只包含大寫字母和小寫字母的字串,請將其中所有的小寫字母轉換成大寫字母后將字串輸出,
輸入描述
輸入一行包含一個字串,
輸出描述
輸出轉換成大寫后的字串,
輸入輸出樣例
示例
輸入
LanQiao
輸出
LANQIAO
評測用例規模與約定
對于所有評測用例,字串的長度不超過 100,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(scan.nextLine().toUpperCase()); scan.close(); } }
高精度加法
【題目描述】
題目描述
給定兩個整數 a和 b,請你求出這兩個整數的和,
輸入描述
輸入兩個正整數 a,b,a和 b都不超過 100位,
輸出描述
輸出 a+b,
輸入輸出樣例
示例
輸入
1234567890123456789 9876543210987654321
輸出
11111111101111111110
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; import java.math.BigInteger; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... String a = scan.nextLine(); String b = scan.nextLine(); BigInteger anum=new BigInteger(a); BigInteger bnum=new BigInteger(b); System.out.println(anum.add(bnum)); scan.close(); } }
天數
【題目描述】
題目描述
輸入一個月份,請輸出 2021 年這個月有多少天,
輸入描述
輸入一行包含一個整數,表示月份,
輸出描述
輸出一個整數,這個月的天數,
輸入輸出樣例
示例 1
輸入
8
輸出
31
示例 2
輸入
2
輸出
28
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=scan.nextInt(); int[]res={31,28,31,30,31,30,31,31,30,31,30,31}; System.out.println(res[num-1]); scan.close(); } }
階乘計算
【題目描述】
題目描述
給定一個正整數 n,求出 n!的值,
輸入描述
輸入一個正整數 n,n<=1000,
輸出描述
輸出 n! ,
輸入輸出樣例
示例
輸入
10
輸出
3628800
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; import java.math.*; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=scan.nextInt(); if(num==0){ System.out.println(1); return; } BigInteger sum=BigInteger.ONE; for(int i=1;i<=num;i++){ sum=sum.multiply(new BigInteger(i+"")); } System.out.println(sum); scan.close(); } }
ASC
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
已知大寫字母 A 的 ASCII 碼為 65,請問大寫字母 L 的 ASCII 碼是多少?
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println((int)('L')); scan.close(); } }
距離和
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int sum=0; String a="LANQIAO"; for(int i=0;i<a.length();i++){ for(int j=i+1;j<a.length();j++){ sum=sum+Math.abs(((int)(a.charAt(j)))-((int)(a.charAt(i)))); } } System.out.println(sum); scan.close(); } }
數的分解
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此輸入您的代碼... int num = 2019; int result = 0; for (int i = 1; i < num; i++) { for (int j = i + 1; j < num; j++) { int k =num-i-j; String si = i + ""; String sj = j + ""; String sk = k + ""; boolean a = !si.contains("2") && !si.contains("4"); boolean b = !sj.contains("2") && !sj.contains("4"); boolean c = !sk.contains("2") && !sk.contains("4"); if (k>i&&k>j&& a && b && c) { result++; } } } System.out.println(result); scan.close(); } }
三角形面積
【題目描述】
輸入輸出樣例
示例 1
輸入
5 6
輸出
15
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int l = scan.nextInt(); int h = scan.nextInt(); int tem = l * h; if( (tem & 1) == 0){ System.out.println(tem/2); }else{ System.out.println(String.format("%.1f",tem/2.0)); } scan.close(); } }
有獎猜謎
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int sum=777; //在此輸入您的代碼... String res="vxvxvxvxvxvxvvx"; for(int i =0;i<res.length();i++) { char temp= res.charAt(i); if(temp=='v') { sum=sum*2; }else { sum=sum-555; } } System.out.println(sum); scan.close(); } }
生日蠟燭
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { int sum = 0; for (int i = 3; i < 100; i++) { for (int j = i; j < 100; j++) { sum +=j; if(sum == 236) { System.out.println(i); } } //置0,讓sum重新累加,防止sum的資料錯誤, sum = 0; } } }
猜年齡
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... for(int i=10;i<=99;i++){ if(i*i*i>=1000&&i*i*i*i>=100000){ String res=i*i*i+""+i*i*i*i; if(res.length()==10&&res.contains("0")&&res.contains("1")&&res.contains("2")&&res.contains("3")&&res.contains("4")&&res.contains("5")&&res.contains("6")&&res.contains("7")&&res.contains("8")&&res.contains("9")){ System.out.println(i); } } } scan.close(); } }
猜燈謎
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此輸入您的代碼... for (int qing = 1; qing <= 9; qing++) { for (int cai = 0; cai <= 9; cai++) { for (int mi = 0; mi <= 9; mi++) { for (int bian = 0; bian <= 9; bian++) { for (int shang = 0; shang <= 9; shang++) { for (int deng = 0; deng <= 9; deng++) { if((qing*100+cai*10+mi)*(qing*100+cai*10+mi)==100000*qing+10000*bian+shang*1000+deng*100+bian*10+cai) { System.out.println(qing+""+cai+""+mi); } } } } } } } scan.close(); } }
生成回文數
【題目描述】
【分析與解答】
【Java語言實作】
import java.math.BigInteger; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; for(int i=0;i<=200;i++){ String sum=i+""; while(!judge(sum)){ sum=rever(sum).toString(); num++; if(num>1000){ System.out.println(i); break; } } num=0; } scan.close(); } public static BigInteger rever(String num1){ StringBuffer temp=new StringBuffer(num1); String num2=temp.reverse().toString(); BigInteger res=new BigInteger(num1).add(new BigInteger(num2)); return res; } public static boolean judge(String num){ StringBuffer num1=new StringBuffer(num); String num2=num1.reverse().toString(); return num2.equals(num); } }
排列字母
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Arrays; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... char temp[]=scan.nextLine().toCharArray(); Arrays.sort(temp); String res=""; for(int i=0;i<temp.length;i++) { res+=temp[i]; } System.out.println(res); scan.close(); } }
星期計算
【題目描述】
【分析與解答】
【Java語言實作】
import java.math.BigInteger; import java.util.Arrays; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... BigInteger a=new BigInteger("20").pow(22).mod(new BigInteger("7")); System.out.println(Integer.parseInt(a.toString())+6); scan.close(); } }
紙張尺寸
【題目描述】
問題描述
在 ISO 國際標準中定義了 A0 紙張的大小為 1189mm \times× 841mm, 將 A0 紙 沿長邊對折后為 A1 紙, 大小為 841mm \times× 594mm, 在對折的程序中長度直接取 下整 (實際裁剪時可能有損耗),將 A1 紙沿長邊對折后為 A2 紙, 依此類推,
輸入紙張的名稱, 請輸出紙張的大小,
輸入格式
輸入一行包含一個字串表示紙張的名稱, 該名稱一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一,
輸出格式
輸出兩行,每行包含一個整數,依次表示長邊和短邊的長度,
樣例輸入1
A0
樣例輸出1
1189 841
樣例輸入 2
A1
樣例輸出 2
841 594
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 512M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String a = scan.next(); char b = a.charAt(1); int c = Integer.parseInt(String.valueOf(b)); int left = 1189; int right = 841; for (int i = 1; i <= c; i++) { if(left >= right){ if(left %2 ==0){ left = left / 2; }else{ left = (left-1) /2; } }else{ if(right %2 ==0){ right = right / 2; }else{ right = (right-1) /2; } } } if(left > right){ System.out.println(left); System.out.println(right); }else{ System.out.println(right); System.out.println(left); } } }
平行四邊形
【題目描述】
題目描述
給定一個平行四邊形的底邊長度 l和高度 h,求平行四邊形的面積,
輸入描述

輸出描述
輸出一個數,表示平行四邊形的面積,如果面積為整數,請直接輸出這個整數,不帶小數點,如果面積不是整數,請四舍五入保留正好一位小數,
輸入輸出樣例
示例 1
輸入
5 6
輸出
30
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String a = scan.next(); char b = a.charAt(1); int c = Integer.parseInt(String.valueOf(b)); int left = 1189; int right = 841; for (int i = 1; i <= c; i++) { if(left >= right){ if(left %2 ==0){ left = left / 2; }else{ left = (left-1) /2; } }else{ if(right %2 ==0){ right = right / 2; }else{ right = (right-1) /2; } } } if(left > right){ System.out.println(left); System.out.println(right); }else{ System.out.println(right); System.out.println(left); } } }
倍數
【題目描述】
題目描述
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
請問在 1 到 2020 中,有多少個數既是 4的整數倍,又是 6 的整數倍,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; for(int i=1;i<=2020;i++){ if(i%4==0&&i%6==0){ num++; } } System.out.println(num); scan.close(); } }
純質數
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; import java.util.*; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { //題目的意思 每個數都是2,3,5,7 public static boolean isPrimeNumber(int n){ //判斷是否為質數 if(n==1||n==0) return false; for(int i=2;i<=Math.sqrt(n);i++){ if(n%i==0) return false; } return true; } public static void main(String[] args) { int sum=0; for(int i=1;i<=20210605;i++){ int j=i; while(j!=0){//篩選條件 取出每位上的數看是否為質數 if(isPrimeNumber(j%10)==false) break; j=j/10; }//判斷是否為質數 j==0 是防止break中跳出的數 if(j==0&&isPrimeNumber(i)) sum++; } System.out.println(sum); } }
數字位數
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... String sum=""; for(int i=1;i<=2020;i++){ sum+=i; } System.out.println(sum.length()); scan.close(); } }
合法日期
【題目描述】
題目描述
小藍正在上小學,老師要求同學們在暑假每天記日記,可是小藍整個暑假都在玩,直到最后一天才想起要記日記,于是小藍趕緊編了一些日記交給老師,
沒想到,日記很快就被老師發現了問題,原來小藍記完 8 月 31 日的日記,竟又記了 8 月 32 日和 8 月 33 日的日記,這顯然是有問題的,因為根本沒有 8 月 32 日和 8 月 33 日,
給定一個月份和一個日期,請問 2021 年有沒有這一天,
輸入描述

輸出描述
如果2021年有 m 月 d日,輸入 yes,否則輸出 no,
輸入輸出樣例
示例 1
輸入
8 32
輸出
no
示例 2
輸入
2 28
輸出
yes
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int m=sc.nextInt(); int d=sc.nextInt(); String ans="yes"; if(m>12 || d>31) { ans="no"; }else if(m==2 && d>28) { ans="no"; }else if((m==4 ||m==6||m==9||m==11) && d>30) { ans="no"; } System.out.println(ans); } }
合數個數
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; for(int i=4;i<=2020;i++){ for(int j=2;j<i;j++){ if(i%j==0){ num++; break; } } } System.out.println(num); scan.close(); } }
數字9
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int count=0; for (int i = 1; i <= 2019; i++) { if ((i+"").contains("9")){ count++; } } System.out.println(count); scan.close(); } }
居中輸出
【題目描述】
題目描述
輸入一個整數,請在整數前后補上等號,使得總的長度為 10,而且整數在正中間,
輸入描述
輸入一行包含一個整數 n,
輸出描述
輸出補上等號后的表示,如果沒辦法使整數在正中間,在前面多補一個等號,
輸入輸出樣例
示例
輸入
2021
輸出
===2021===
示例2
輸入
2021101
輸出
==2021101=
評測用例規模與約定
對于所有評測用例,給定的數是不超過 8 位的非負整數,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=scan.nextInt(); String temp=num+""; while(temp.length()<=8){ temp="="+temp; temp=temp+"="; } if(temp.length()==9){ temp="="+temp; } System.out.println(temp); scan.close(); } }
約數
【題目描述】
題目描述

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; for(int i=1;i<=2020;i++){ if(2020%i==0){ num++; } } System.out.println(num); scan.close(); } }
公約數
【題目描述】
題目描述

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; for(int i=1;i<=2020;i++){ if(2020%i==0&&3030%i==0){ num++; } } System.out.println(num); scan.close(); } }
約數個數
【題目描述】
題目描述

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; for(int i=1;i<=1200000;i++){ if(1200000%i==0){ num++; } } System.out.println(num); scan.close(); } }
含2天數
【題目描述】
題目描述

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; Calendar cale = Calendar.getInstance(); cale.set(1900, 0, 1); Date now=cale.getTime(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMMdd"); String transformDate=simpleDateFormat.format(now); while(!transformDate.equals("99991231")){ now=cale.getTime(); simpleDateFormat=new SimpleDateFormat("yyyyMMdd"); transformDate=simpleDateFormat.format(now); if(transformDate.contains("2")) { num++; } cale.add(5, 1); } System.out.println(num); scan.close(); } }
年齡問題
【題目描述】
題目描述

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... for(int i=0;i<=99;i++){ int wife=i; int husband=(int)(1.5*wife); if((husband-20)==2*(wife-20)&&(1.5*wife)==(int)(1.5*wife)){ System.out.println(wife); } } scan.close(); } }
反倍數
【題目描述】
示例
輸入
30 2 3 6
輸出
10
樣例說明:
以下這些數滿足要求:1, 5, 7, 11, 13, 17, 19, 23, 25, 29,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=scan.nextInt(); int a=scan.nextInt(); int b=scan.nextInt(); int c=scan.nextInt(); int sum=0; for(int i=1;i<=num;i++){ if(i%a!=0&&i%b!=0&&i%c!=0){ sum++; } } System.out.println(sum); scan.close(); } }
星期一
【題目描述】
【分析與解答】
【Java語言實作】
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; Calendar cale = Calendar.getInstance(); cale.set(1901, 0, 1); Date now=cale.getTime(); Calendar cale1 = Calendar.getInstance(); cale1.set(2000, 11, 31); Date now1=cale1.getTime(); long difference = (now1.getTime()-now.getTime())/86400000; System.out.println(difference/7); scan.close(); } }
星期幾
【題目描述】
【分析與解答】
【Java語言實作】
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此輸入您的代碼... int num = 0; Calendar cale = Calendar.getInstance(); for (int i = 1949; i <= 2012; i++) { cale.set(i, 9, 1); if (cale.get(Calendar.DAY_OF_WEEK) == 1) { num++; } } System.out.println(num); scan.close(); } }
立方變自身
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
觀察下面的現象,某個數字的立方,按位累加仍然等于自身,
1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 ...
請你計算包括 1,8,171,8,17 在內,符合這個性質的正整數一共有多少個?
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int num=0; for(int i=1;i<=999999;i++) { if(i==add(i*i*i+"")) { num++; } } System.out.println(num); scan.close(); } public static int add(String num){ char temp[]=num.toCharArray(); int sum=0; for(int i=0;i<temp.length;i++) { sum=sum+temp[i]-'0'; } return sum; } }
時間顯示
【題目描述】
題目描述

輸入描述
輸入一行包含一個整數,表示時間,
輸出描述

輸入輸出樣例
示例 1
輸入
46800999
輸出
13:00:00
示例 2
輸入
1618708103123
輸出
01:08:23
評測用例規模與約定
對于所有評測用例,給定的時間為不超過 10^{18}1018 的正整數,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 512M
【分析與解答】
【Java語言實作】
import java.security.Timestamp; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); String time1 = sdf.format(new Date(scan.nextLong())); System.out.println(time1); scan.close(); } }
最小公倍數
【題目描述】
本題為代碼補全填空題,請將題目中給出的源代碼補全,并復制到右側代碼框中,選擇對應的編譯語言(C/Java)后進行提交,若題目中給出的源代碼語言不唯一,則只需選擇其一進行補全提交即可,復制后需將源代碼中填空部分的下劃線刪掉,填上你的答案,提交后若未能通過,除考慮填空部分出錯外,還需注意是否因在復制后有改動非填空部分產生錯誤,
求兩個數字的最小公倍數是很常見的運算,比如,3 和 5 的最小公倍是 15,6 和 8 的最小公倍數是 24,
下面的代碼對給定的兩個正整數求它的最小公倍數,請填寫缺少的代碼,使程式盡量高效地運行,
源代碼
C
#include <stdio.h> #include <stdlib.h> int f(int a, int b) { int i; for(i=a;;______) { if(i%b==0) return i; } } int main(int argc, char* argv[]) { printf("%d\n", f(12,15)); return 0; }
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【C語言實作】
#include <stdio.h> #include <stdlib.h> int f(int a, int b) { int i; for(i=a;;i=i+a) { if(i%b==0) return i; } } int main(int argc, char* argv[]) { printf("%d\n", f(12,15)); return 0; }
飲料換購
【題目描述】
題目描述
樂羊羊飲料廠正在舉辦一次促銷優惠活動,樂羊羊 C 型飲料,憑 3 個瓶蓋可以再換一瓶 C 型飲料,并且可以一直回圈下去(但不允許暫借或賒賬),
請你計算一下,如果小明不浪費瓶蓋,盡量地參加活動,那么,對于他初始買入的 n 瓶飲料,最后他一共能喝到多少瓶飲料,
輸入描述

輸出描述
輸出一個整數,表示實際得到的飲料數
輸入輸出樣例
示例
輸入
100
輸出
149
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int drink=scan.nextInt(); int bottle=drink; while(bottle>=3){ drink+=bottle/3; bottle=bottle/3+bottle%3; } System.out.println(drink); scan.close(); } }
算式900
【題目描述】
題目描述
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小明的作業本上有道思考題:
看下面的算式:
(□□□□-□□□□)*□□=900
其中的小方塊代表 00 ~ 99 的數字,這 1010 個方塊剛好包含了 00 ~ 99 中的所有數字, 注意:00 不能作為某個數字的首位,
小明經過幾天的努力,終于做出了答案!如下:
(5012-4987)*36=900
用計算機搜索后,發現還有另外一個解,本題的任務就是:請你算出這另外的一個解,
注意:輸出格式需要與示例嚴格一致; 括號及運算子號不要用中文輸入法; 整個算式中不能包含空格,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Arrays; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { for(int i=1000;i<=9999;i++) { for(int j=1000;j<=9000;j++) { for(int k=10;k<=99;k++) { if((i-j)*k==900) { String str=""+i+j+k; char[] a = str.toCharArray(); Arrays.sort(a); String s = String.valueOf(a); if(s.equals("0123456789")) { System.out.println(i); System.out.println(j); System.out.println(k); } } } } } } }
算式問題
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 import java.util.Arrays; public class Main { public static void main(String[] args) { int sum=0; for (int i = 100; i <1000; i++) { for (int j = 100; j < 1000; j++) { int k=i+j; String a=""+i+j+k; char [] b=a.toCharArray(); Arrays.sort(b); String s=String.valueOf(b); if (s.equals("123456789")&&i+j==k) { sum++; } } } System.out.println(sum); } }
求值
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... System.out.println(45360); scan.close(); } }
啤酒和飲料
【題目描述】

【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { for(int j = 2; j<43; j++){ for(int i=1; i<j; i++){ if(1.9*j+2.3*i==82.3){ System.out.println(i); return; } } } } }
序列個數
【題目描述】
題目描述
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
請問有多少個序列滿足下面的條件:
- 序列的長度為 5,
- 序列中的每個數都是 1 到 10 之間的整數,
- 序列中后面的數大于等于前面的數,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此輸入您的代碼... int num = 0; for (int i = 1; i <= 10; i++) { for (int j = i; j <= 10; j++) { for (int k = j; k <= 10; k++) { for (int l = k; l <= 10; l++) { for (int m = l; m <= 10; m++) { num++; } } } } } System.out.println(num); scan.close(); } }
組隊
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
作為籃球隊教練,你需要從以下名單中選出 1號位至 5 號位各一名球員,組成球隊的首發陣容,
每位球員擔任 1 號位至 5 號位時的評分如下表所示,請你計算首發陣容 1號位至 5 號位的評分之和最大可能是多少?

運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此輸入您的代碼... int max = 0; int[] one = { 97, 92, 0, 0, 89, 82, 0, 0, 0, 95, 0, 0, 94, 0, 0, 0, 98, 93, 0, 0 }; int[] two = { 90, 85, 0, 0, 83, 86, 0, 97, 0, 99, 0, 0, 91, 83, 0, 0, 83, 87, 0, 99 }; int[] three = { 0, 96, 0, 0, 97, 0, 0, 96, 89, 0, 96, 0, 0, 87, 98, 0, 99, 92, 0, 96 }; int[] four = { 0, 0, 0, 80, 0, 0, 87, 0, 0, 0, 97, 93, 0, 0, 97, 93, 98, 96, 89, 95 }; int[] five = { 0, 0, 93, 86, 0, 0, 90, 0, 0, 0, 0, 98, 0, 0, 98, 86, 81, 98, 92, 81 }; for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { for (int k = 0; k < 20; k++) { for (int l = 0; l < 20; l++) { for (int m = 0; m < 20; m++) { if ((i != j) && (i != k) && (i != l) && (i != m) && (j != k) && (j != l) && (j != m) && (k != l) && (k != m) && (l != m)) { if ((one[i] + two[j] + three[k] + four[l] + five[m]) > max) { max = one[i] + two[j] + three[k] + four[l] + five[m]; } } } } } } } System.out.println(max); scan.close(); } }
數位和
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... int sum=0; for(int i=1;i<=1000;i++){ sum=sum+num(i); } System.out.println(sum); scan.close(); } public static int num(int num){ int sum=0; while(num>0){ sum=sum+num%10; num/=10; } return sum; } }
乘積尾零
【題目描述】
【分析與解答】
【Java語言實作】
import java.math.BigInteger; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... BigInteger a=BigInteger.ONE; int num=0; while(num<100) { a=a.multiply(new BigInteger(scan.nextInt()+"")); num++; } int num1=0; while((a.mod(BigInteger.TEN)).compareTo(BigInteger.ZERO)==0) { a=a.divide(BigInteger.TEN); num1++; } System.out.println(num1); scan.close(); } }
最小公倍數
【題目描述】
題目描述
為什么 1 小時有 60 分鐘,而不是 100 分鐘呢?這是歷史上的習慣導致,
但也并非純粹的偶然:60 是個優秀的數字,它的因子比較多,
事實上,它是 1 至 6 的每個數字的倍數,即 1,2,3,4,5,6 都是可以除盡 60,
我們希望尋找到能除盡 1 至 n的的每個數字的最小整數,
不要小看這個數字,它可能十分大,比如 n= 100, 則該數為:
69720375229712477164533808935312303556800
輸入描述
輸入一個數字 N(N<100),
輸出描述
輸出出 1 ~ n的最小公倍數,
輸入輸出樣例
示例
輸入
6
輸出
60
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 256M
【分析與解答】
【Java語言實作】
import java.math.BigInteger; import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... BigInteger n = scan.nextBigInteger(); BigInteger m = n; BigInteger s = new BigInteger("1"); for(BigInteger i = new BigInteger("2");i.max(m).equals(m)||i.equals(m);i = i.add(new BigInteger("1"))){ BigInteger t = s; s = s.multiply(i); s = s.divide(t.gcd(i)); } System.out.println(s.toString()); scan.close(); scan.close(); } }
年齡巧合
【題目描述】
本題為填空題,只需要算出結果后,在代碼中使用輸出陳述句將所填結果輸出即可,
小明和他的表弟一起去看電影,有人問他們的年齡,小明說:今年是我們的幸運年啊,我出生年份的四位數字加起來剛好是我的年齡,表弟的也是如此,已知今年是 2014 年,并且,小明說的年齡指的是周歲,
請推斷并填寫出小明的出生年份,
運行限制
- 最大運行時間:1s
- 最大運行記憶體: 128M
【分析與解答】
【Java語言實作】
import java.util.Scanner; //1:無需package //2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); //在此輸入您的代碼... for(int i=1900;i<=2014;i++){ if(cal(i)==2014-i){ System.out.println(i); break; } } scan.close(); } public static int cal(int num){ int sum=0; while(num>0){ sum+=num%10; num/=10; } return sum; } }
猜字母
【題目描述】
【分析與解答】
【Java語言實作】
import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改 public class Main { public static void main(String[] args) { String s = ""; for(int i=1;i<=106;i++) { s = s+ "abcdefghijklmnopqrs"; } String t = ""; while(s.length()!=1) { t = ""; for(int i=1;i<s.length();i=i+2) { t = t + s.charAt(i); } s = t; } System.out.println(s); } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/538623.html
標籤:其他


















