日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...

發布時間:2023/12/19 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分享幾道簡單的python打印輸出的問題,本質上都是可以將其分解成一個大循環之中有幾個小循環。

1.楊輝三角

主要特點:

每個數等于它上方兩數之和。

每行數字左右對稱,由1開始逐漸變大。

每行端點與結尾的數為1

def triangles(N):

# 首行

line = [1]

for _ in range(N):

# 生成器

yield line

for i in range(1, len(line)):

# 每個數等于它上方兩數之和。

line[i] = pre[i] + pre[i - 1]

# 結尾端點為1,需要額外添加

line.append(1)

# 將本行當做生成下一行的依據

pre = line[:]

N = int(input("請輸入一個整數:"))

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系統是Python的一種開源的數值計算擴展。

# 這種工具可用來存儲和處理大型矩陣,

# 比Python自身的嵌套列表(nested list

# structure)結構要高效的多

# (該結構也可以用來表示矩陣(matrix))

# 強大的N維數組

觀察圖形可以看出:

4*4 = 4+3+3+2+2+1+1

5*5 = 5+4+4+3+3+2+2+1+1

所以大循環套著四個小循環,而小循環的次數有以上規律

代碼實現如下:

# -*- coding: utf-8 -*-

"""

Created on Tue Aug 14 08:47:34 2018

@author: Python

"""

import numpy

N = int(input("請輸入一個整數:"))

#先打印出N*N的0矩陣

Arr = numpy.zeros((N,N),dtype=numpy.int16)

#記錄數字

num = 1

i = 0 #記錄行

j = 0 #記錄列

times = N #記錄循環次數

while num <= N*N:

# 向右,列的變化,不斷增加

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

# 向左,列的變化,不斷減少

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.打印三角形數:

# 比如,輸入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='')

# 從小到大打印數字1->i

for y in range(1,i):

print(y, end='')

# 從大到小打印數字

for z in range(1,i-1):

print(i-1-z, end='')

print("")

總結

以上是生活随笔為你收集整理的用python编写杨辉三角金字塔_用python实现三道简单算法题:杨辉三角,蛇形矩阵,金字塔...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。