【筆試實戰】藍橋官網線上刷題100題計劃【第一輪】

2022-11-28 06:01:09

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、92019 的數位很感興趣,在 11 4040 中這樣的數包括 1、2、9、1012910 32、393239 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();
    }
}