用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...
分享幾道簡單的python打印輸出的問題,本質(zhì)上都是可以將其分解成一個(gè)大循環(huán)之中有幾個(gè)小循環(huán)。
1.楊輝三角
主要特點(diǎn):
每個(gè)數(shù)等于它上方兩數(shù)之和。
每行數(shù)字左右對稱,由1開始逐漸變大。
每行端點(diǎn)與結(jié)尾的數(shù)為1
def triangles(N):
# 首行
line = [1]
for _ in range(N):
# 生成器
yield line
for i in range(1, len(line)):
# 每個(gè)數(shù)等于它上方兩數(shù)之和。
line[i] = pre[i] + pre[i - 1]
# 結(jié)尾端點(diǎn)為1,需要額外添加
line.append(1)
# 將本行當(dāng)做生成下一行的依據(jù)
pre = line[:]
N = int(input("請輸入一個(gè)整數(shù):"))
for i in triangles(N):
print(i)
2.打印蛇形矩陣
input:4
打印如下:
1 ? ? ?2 ? ? ?3 ? ? 4
12 ? 13 ? ?14 ? ?5
11 ? 16 ? ?15 ? ?6
10 ? ?9 ? ? ?8 ? ? 7
# NumPy系統(tǒng)是Python的一種開源的數(shù)值計(jì)算擴(kuò)展。
# 這種工具可用來存儲(chǔ)和處理大型矩陣,
# 比Python自身的嵌套列表(nested list
# structure)結(jié)構(gòu)要高效的多
# (該結(jié)構(gòu)也可以用來表示矩陣(matrix))
# 強(qiáng)大的N維數(shù)組
觀察圖形可以看出:
4*4 = 4+3+3+2+2+1+1
5*5 = 5+4+4+3+3+2+2+1+1
所以大循環(huán)套著四個(gè)小循環(huán),而小循環(huán)的次數(shù)有以上規(guī)律
代碼實(shí)現(xiàn)如下:
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 14 08:47:34 2018
@author: Python
"""
import numpy
N = int(input("請輸入一個(gè)整數(shù):"))
#先打印出N*N的0矩陣
Arr = numpy.zeros((N,N),dtype=numpy.int16)
#記錄數(shù)字
num = 1
i = 0 #記錄行
j = 0 #記錄列
times = N #記錄循環(huán)次數(shù)
while num <= N*N:
# 向右,列的變化,不斷增加
for _ in range(times):
# 改變數(shù)組對應(yīng)位置的值
Arr[i][j] = num
num += 1
j += 1
times -= 1
# 循環(huán)結(jié)束時(shí),行列的值需要相應(yīng)的改變
j -= 1
i += 1
# 向下,行的變化,不斷增加
for _ in range(times):
Arr[i][j] = num
num += 1
i += 1
i -= 1
j -= 1
# 向左,列的變化,不斷減少
for _ in range(times):
Arr[i][j] = num
num += 1
j -= 1
times -= 1
j += 1
i -= 1
# 向上,行的變化,不斷減少
for _ in range(times):
Arr[i][j] = num
num += 1
i -= 1
i += 1
j += 1
print(Arr)
3.打印三角形數(shù):
# 比如,輸入n=5
#???? 1
#??? 121
#?? 12321
#? 1234321
# 123454321
N = int(input("請輸入N:"))
i = 1
while i <= N:
i += 1
# 打印空格0,N-i
for x in range(0, N+1-i):
print(" ", end='')
# 從小到大打印數(shù)字1->i
for y in range(1,i):
print(y, end='')
# 從大到小打印數(shù)字
for z in range(1,i-1):
print(i-1-z, end='')
print("")
總結(jié)
以上是生活随笔為你收集整理的用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华语剧集《模仿犯》上线 Netflix:
- 下一篇: python里面的正则表达式_Pytho