藍橋杯每日一題(26)蛇形填數(python)

2021-10-19 05:23:38 字數 1644 閱讀 3912

試題 c: 蛇形填數

本題總分:10 分

如下圖所示,小明用從 1 開始的正整數「蛇形」填充無限大的矩陣。

1 2 6 7 15 …

3 5 8 14 …

4 9 13 …

10 12 …

11 …

…容易看出矩陣第二行第二列中的數是 5。請你計算矩陣中第 20 行第 20 列的數是多少?

這是一道結果填空的題,你只需要算出結果後提交即可。

本題的結果為乙個整數,在提交答案時只填寫這個整數,填寫多餘的內容將無法得分。

我們可以在矩陣中尋找一些規律

先設定乙個範圍較大的矩陣

(在這裡設定的是200 * 200)

規律:

可以斜著來看矩陣

當i為偶數的時候,數字都是從左下向右上填充的

當i為奇數的時候,數字都是從右上向左下填充的。

那麼我們就可以利用這個規律來實現矩陣

迴圈次數從0開始

設定填入的數字num為0

如果i為偶數:

偶數序列第乙個數固定為左下

設定座標縱座標,橫座標

按順序縱座標減一,橫座標加一

即能實現從左下到右上進行遍歷

在遍歷的同時填入的數字num + 1,計算本序列填入的數字個數count

填入的數字個數即為序列縱座標的值

同樣如果i為奇數:

奇數序列第乙個數固定為右上

設定座標縱座標,橫座標

按順序縱座標加一,橫座標減一

即能實現從右上到左下進行遍歷

在遍歷的同時填入的數字num + 1,計算本序列填入的數字個數count

填入的數字個數即為序列橫座標的值

import numpy as np

data = np.zeros(

(200

,200))

num =

0for i in

range(60

):if i %2==

0:count =

0 x, y = i,

0while count <= i:

num +=

1 data[x]

[y]= num

count +=

1 x -=

1 y +=

1elif i %2!=

0:count =

0 x, y =

0, i

while count <= i:

num +=

1 data[x]

[y]= num

count +=

1 x +=

1 y -=

1print

(data[19]

[19])

761.0

藍橋杯真題 2023年藍橋杯 蛇形填數

如下圖所示,小明用從 1 開始的正整數 蛇形 填充無限大的矩陣。1 2 6 7 15 3 5 8 14 4 9 13 10 12 11 1 容易看出矩陣第二行第二列中的數是 5。請你計算矩陣中第 20 行第 20 列的數是多少?通過觀察排列規律可以發現要尋找的數可以通過所在的行數,列數,斜排 右上 ...

藍橋杯python每日一題 特殊回文數

試題 基礎練習 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 123321是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的。輸入乙個正整數n,程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 輸入格式 輸入一行,包含乙個正整數n。輸出格式 按從小到大的順序輸出滿...

藍橋杯題 方格填數

填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。我的思路是 先把這10個數進行排列,然後把排列後的數字存入乙個二維陣列b 3 4 中 2 用int c 8...