算法刷題-楊輝三角-JAVA

0x00 引言

爲獲取一個良好的算法思維,以及不再成爲一個腳本小子,爭取每天一道算法題,培養自己的邏輯思維,溫顧各類型語言語法知識。

題解只寫自己理解的解法,其他解法不再增加。題目與解析均在代碼裏面。

0x01 難度等級

簡單

0x02 代碼

package 簡單;

import java.util.Scanner;

/*

以上三角形的數陣,第一行只有一個數1,以下每行的每個數,是恰好是它上面的數、左上角數和右上角的數,3個數之和(如果不存在某個數,認爲該數就是0)。

求第n行第一個偶數出現的位置。如果沒有偶數,則輸出-1。例如輸入3,則輸出2,輸入4則輸出3,輸入2則輸出-1。

數據範圍: 1 \le n \le 10^9 \1≤n≤10
輸入描述:
輸入一個int整數

示例1
輸入:
4

輸出:
3

* */
public class 楊輝三角 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //輸入n
        int n = sc.nextInt();
        if (n == 1 || n == 2) {
            System.out.println(-1);
        } else if (n % 4 == 1 || n % 4 == 3) {
            System.out.println(2);
        } else if (n % 4 == 2) {
            System.out.println(4);
        } else if (n % 4 == 0) {
            System.out.println(3);
        }

    }
}

0x03 算法思想

 

看着挺難的,實際上不難:

找規律:

n1234567891011……
index -1 -1 2 3 2 4 2 3 2 4 2 ……

 

 

 一個一個的找規律就會發現,只要對4取餘,能得到0,1,2,3的規律。這樣只要寫個if判斷即可。

0x04 運行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章