⑴ Python楊輝三角怎麼打出兩個三角形,菱形,或者左右連個,上下兩個
要使用 Python 中的楊輝三角形列印兩個三角形、一個菱形或三角形和菱形的組合,可以使用嵌套的 for 循環和條件語句。下面是一個示例:
在此代碼中,該函數用於為第一個三角形生成從 1 到的數字序列,為第二個三角形生成從 1 到 1 的數字序列。然後,使用兩個嵌套的 for 循環遍歷三角形的行和列,並使用公式列印楊輝三角形中的數字。列印每個三角形中的數字後,列印換行符range()nnint(bin(i-1)[2:][::-1][j-1])
回答不易望請採納
⑵ 第十四屆藍橋杯青少組省賽Python真題(2023年5月14日)
題目描述:編寫程序實現,給定一個正整數N,計算N+N的結果。例如,N = 4時,結果為8。輸入一個正整數N,輸出N+N的值。樣例輸入:3,樣例輸出:6。
題目描述:編寫程序實現,給定一個只包含小寫字母的字元串S(長度≥3),輸出字元串S的第一個字元和最後一個字元。例如,當S="abc"時,輸出"ac"。輸入一個只包含小寫字母的字元串S(長度≥3),輸出字元串S的第一個字元和最後一個字元,兩個字元之間沒有空格及其他字元。樣例輸入:"abc",樣例輸出:"ac"。
題目描述:編寫程序實現,小明收藏了N(2≤N≤25)個數字幣,每個數字幣上都有一個面值(面值可以重復)。從數字幣中任選K(2≤K≤N)個,有多種選法,將每次選擇的數字幣上的面值累加。解決兩個問題:1)累加的和中有多少種不同的結果;2)累加的和中有多少個不同的合數。例如,N=5,K=3,有10種選法,累加的和中有7種不同的結果,分別是7、8、6、11、9、10、12,累加的和中有5個不同的合數,分別是8、6、9、10、12。輸入描述:第一行輸入一個正整數N(2≤N≤25),表示數字幣的個數;第二行輸入N個正整數(1≤正整數≤1000),表示數字幣上的面值,正整數之間以一個英文逗號隔開;第三行輸入一個正整數K(2≤K≤N),表示所要選取的數字幣個數。輸出描述:輸出兩個整數,分別表示累加的和中不同結果的個數以及累加的結果中不同合數的個數,兩個整數之間以一個英文逗號隔開。樣例輸入:5,2,1,4,5,3,3,樣例輸出:7,5。
題目描述:編寫程序實現,給出N行的楊輝三角,X和Y分別表示第X行和第Y列,找出第X行Y列對應的數,以及第Y列上所有數的和。例如,N=5時,5行的楊輝三角如下圖。X=5,Y=3,第5行第3列對應的數為6;第3列中所有數的和為10(10 = 6 + 3 + 1)。輸入描述:第一行輸入一個正整數N(2≤N≤30),表示楊輝三角的行數;第二行輸入兩個正整數X和Y(1≤Y≤X≤N),分別表示第X行和第Y列,正整數之間以一個英文逗號隔開。輸出描述:輸出兩個整數,分別表示N行的楊輝三角中第X行Y列對應的數,及第Y列上所有數的和,兩個整數之間以一個英文逗號隔開。樣例輸入:5,5,3,樣例輸出:6,10。
題目描述:編寫程序實現,工人砌了一面奇特的磚牆,由N列磚組成(1≤N≤106),每列磚的數量為Ki(1≤Ki≤104),每個磚的長寬高都為1。小藍為了美化這面牆,需要在這面牆中找到一塊面積最大的矩形用於塗鴉。輸入描述:第一行輸入一個正整數N(1≤N≤10^6),表示這面磚牆由幾列磚組成;第二行輸入N個正整數Ki(1≤Ki≤10^4),表示每列磚的數量,正整數之間以一個空格隔開。輸出描述:輸出一個正整數,表示最大矩形的面積。樣例輸入:6,3 2 1 5 6 2,樣例輸出:10。
題目描述:編寫程序實現,在一個神奇空間里有N個房間(2≤N≤20),每個房間可能有一個或多個傳送門,每個傳送門都有一個編號。如果相同編號的傳送門同時出現在多個房間中,表示這些房間可以互通。給定兩個房間的編號A和B,請找出從房間A到達房間B最少需要經過幾個傳送門。例如,N=3,3個房間中傳送門的編號分別為:房間1:1、4、6;房間2:2、3、4,8;房間3:3、6、9。其中房間1和房間2互通,共用4號傳送門;房間1和房間3互通,共用6號傳送門;房間2和房間3互通,共用3號傳送門。當A=1,B=2,從房間1到達房間2,共有兩種路線:路線1:從房間1通過4號傳送門進入房間2,共經過1個傳送門;路線2:從房間1通過6號傳送門進入房間3,再從房間3通過3號傳送門進入房間2,共經過2個傳送門。故從房間1到達房間2最少需要經過1個傳送門。輸入描述:第一行輸入一個正整數N(2≤N≤20),表示房間數量;接下來輸入N行,每行包含多個正整數(1≤正整數≤100),第2行到第N+1行依次表示1到N號房間內所有傳送門的編號,正整數之間以一個英文逗號隔開;最後一行輸入兩個正整數A和B(1≤A≤N,1≤B≤N,且A≠B),表示兩個房間的編號,正整數之間以一個英文逗號隔開。輸出描述:輸出一個整數,表示從房間A到達房間B最少需要經過幾個傳送門,如果房間A不能到達房間B,則輸出-1。樣例輸入:3,1,4,6,2,3,4,8,3,6,9,1,2,樣例輸出:1。
⑶ 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
1、語法。
2、基礎理論(數學、數據結構、演算法等)。
3、設計方法(編程原則、設計模式、框架設計等)。
4、庫(核心、基礎、UI、擴展、游戲引擎等)。
5、計算機相關(操作系統、網路、圖形學等)。
6、領域知識(游戲設計、網站設計等)。
7、開發工具(編輯器、IDE、自動部署等)。
8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。
最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。
具體方法包括:
1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。
2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。
3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。
4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。
⑷ 用Python輸出一個楊輝三角的例子
用Python輸出一個楊輝三角的例子
這篇文章主要介紹了用Python和erlang輸出一個楊輝三角的例子,同時還提供了一個erlang版楊輝三角,需要的朋友可以參考下
關於楊輝三角是什麼東西,右轉維基網路:楊輝三角
稍微看一下直觀一點的圖:
代碼如下:
楊輝三角有以下幾個特點:
每一項的值等於他左上角的數和右上角的數的和,如果左上角或者右上角沒有數字,就按0計算。
第N層項數總比N-1層多1個
計算第N層的楊輝三角,必須知道N-1層的數字,然後將相鄰2項的數字相加,就能得到下一層除了最邊上2個1的所有數字。 聽起來有點像遞歸的思想,我們不妨假設我們已經知道N-1層的數字,來計算一下N層的數字吧。
代碼如下:
def _yanghui_trangle(n, result):
if n == 1:
return [1]
else:
return [sum(i) for i in zip([0] + result, result + [0])]
上面代碼中,result表示N-1層楊輝三角的數字。實習上,我們在列表2端各補了一個0,然後計算相鄰項的和,就可以直接得到結果。
稍微完善一下代碼:
代碼如下:
def yanghui_trangle(n):
def _yanghui_trangle(n, result):
if n == 1:
return [1]
else:
return [sum(i) for i in zip([0] + result, result + [0])]
pre_result = []
for i in xrange(n):
pre_result = _yanghui_trangle(i + 1, pre_result)
yield pre_result
if __name__ == "__main__":
for line in yanghui_trangle1(5):
print line
_yanghui_trangle可以用lambda的方式簡寫,但是可讀性感覺會變差,所以還是保持現狀好了。
tips: 上面的程序並沒有考慮數據格式化的問題,也就是說輸出不是完美的三角形。
鑒於最近在學習erlang,補上一個erlang版本的,性能上沒有測試過,不過還是要驚嘆於函數式語言的表達能力:
代碼如下:
-mole(yanghui).
-author(lfyzjck).
-export([triangle/1]).
triangle_next(P) ->
lists:zipwith(fun(X, Y) -> X+Y end, [0|P], P ++ [0]).
triangle(1) ->
[[1]];
triangle(N) ->
L = triangle(N - 1),
[H|_] = L,
[triangle_next(H)|L].