#题目1 有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
# l1=[1,2,3,4]
# count=0
# for i in range(100,999):
# a3=i//100
# a2=(i-a3*100)//10
# a1=i-a3*100-a2*10
# # print(i,a3,a2,a1)
# if a1 in l1 and a2 in l1 and a3 in l1:
# if a1!=a2 and a2!=a3 and a1!=a3:
# print(i)
# count+=1
# else:
# print(count)
"""题目2 企业发放的奖金根据利润提成,利润(I):
I<=10 --="">提成10%
i>10且i<20万元时, 提成组成 10*0.1+(I-10)*0.075
i>=20 且 i<40 ,提成组成(i-20)*5%
40<=i<60 ,提成组成 10 * 0.1 + 20*0.075+20*0.05 + (I - 40) * 0.03
60<=i<100 ,提成组成 10 * 0.1 + 20*0.075+20*0.05+20*0.03 + (I - 60) * 0.015
i>100 提成组成 10 * 0.1 + 20*0.075+20*0.05+20*0.03 +40*0.015 + (I - 100) * 0.01
从键盘输入当月利润I,求应发奖金总数
"""
# def reward():
# I=eval(input("请输入当月利润I:"))
# sun=""
# if I<=10:
# sun=I*0.1
# elif I>10 and I<20:
# sun=10*0.1+(I-10)*0.075
# elif I>=20 and I<40:
# sun = 10 * 0.1 + 20*0.75+(I-20)*0.05
# elif I>=40 and I<60:
# sun = 10 * 0.1 + 20*0.075+20*0.05 + (I - 40) * 0.03
# elif I>=60 and I<100:
# sun = 10 * 0.1 + 20*0.075+20*0.05+20*0.03 + (I - 60) * 0.015
# else:
# sun=10 * 0.1 + 20*0.075+20*0.05+20*0.03 +40*0.015 + (I - 100) * 0.01
# print("应发放奖金总数:",sun)
# while True:
# reward()
# """
#题目3 一个整数,它加上100后 是一个完全平方数,再加上168 又是完全平方数,问该数是多少
# """
# from math import sqrt
# for i in range(10000):
# x=sqrt(i+100)
# y=sqrt(i+268)
# if x==int(x) and y==int(y):
# print(i)
# print(sqrt(100+21),sqrt(268+21))
# print(sqrt(261+100),sqrt(268+261))
# print(sqrt(1581+100),sqrt(1581+268))
# """
# """
# import datetime
#
# day1="2024-6-9"
# if day1 is datetime:
# print("OK")
# count=0
# l1=day1.split("-")
# dictm={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
# y=int(l1[0])
# if (y%4)==0 and (y%100)!=0 or (y%400)==0:
# print("这一年是闰年,2月份有29日")
# dictm[2]=29
# for i in range(1,int(l1[1])): #计算前i个月的天数
# count+=dictm[i]
# count+=int(l1[2])
# print(count)
# """
# 题目5 输入3个数x,y,z, 请把这3个数由小到大输出
# """
# x=eval(input("输入数字x:"))
# y=eval(input("输入数字y:"))
# z=eval(input("输入数字z:"))
#
# x,y = (x,y) if x>y else (y,x)
# if z>=x:
# x,y,z=z,x,y
# elif z<=y:
# x,y,z=x,y,z
# else:
# x,y,z=x,z,y
# print(z,y,x)
# """题目6 用*输出C的图案
# * *
# * *
# *
# *
# *
# * *
# * *
# """
# for i in range(-3,4):
# if abs(i)>1:
# print(" "*abs(i)+"*"+" "*(abs(i))+"*"*(3-abs(i)))
# if i>=-1 and i<=1:
# print(" "*abs(i)+"*")
# # if i>1:
# # print(" " * abs(i) + "*" + " " * (7 // abs(i) - 1) + "*"*(3-abs(i)))
# """
# 题目7 输出特殊图案,请在C环境中运行 看一看 Very Beautiful
# 确实没有任何头绪
# """
# a = 305
# b = 404
# print("%c%c%c%c%c"%(b,a,a,a,b))
# print("%c%c%c%c%c"%(a,b,a,b,a))
# print("%c%c%c%c%c"%(a,a,b,a,a))
# print("%c%c%c%c%c"%(a,b,a,b,a))
# print("%c%c%c%c%c"%(b,a,a,a,b))
# """题目 8 输出9*9 口诀表"""
# for i in range(1,10):
# line=""
# for j in range(1,i+1):
# line+="{}*{}={:<2} ".format(j,i,i*j)
# print(line)
# """
# 题目9 输出国际象棋棋盘 8行8列,黑白相间
# """
# for i in range(8):
# line=""
# if i%2==0:
# for j in range(4):
# line+="{:^2} {:^2} ".format("a","b")
# print(line)
# else:
# for j in range(4):
# line+="{:^2} {:^2} ".format("b","a")
# print(line)
# """
# 题目10 打印楼梯,同时在楼梯上方打印两个笑脸
# 打印笑脸我直接找的颜文字 ヽ(°◇° )ノ就是这个图案
# 然后直接输出两个笑脸
# 之后就是打印楼梯,我是用下划线_和 | 这两个符号实现的小写字母 L说不定也可以实现
# 其余的还是循环
# """
# st1="ヽ(°◇° )ノ"
# st2="______ ヽ(°◇° )ノ" #6个下划线
# st3="|"
# print(st1*2)
# for i in range(5):
# print(" "*i*6+st2)
# print(" "*(i*6+6)+st3)
# """题目11 古典问题 有一对兔子,从出生后第3个月起每个月都生一堆兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死,,问每个月兔子总数为多少
# 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21….
# 2.程序源代码:
# """
# f1 = 1
# f2 = 1
# for i in range(1,21):
# print "%12d %12d" % (f1,f2)
# if (i % 2) == 0:
# print ""
# f1 = f1 + f2
# f2 = f1 + f2
# """
# 题目12 求101-200中间的素数,并输出所有素数
# """
# import datetime
#
# counter1=0
# counter2=0
# counter3=0
# l1=[]
# m=int(101**0.5)+1
# n=int(200**0.5)+1
# sttime=datetime.datetime.now()
# for i in range(101,200,2):
# for j in range(3,int(200**0.5)+1,2):
# counter1+=1
# if not i%j:
# break
# else:
# l1.append(i)
# endtime=datetime.datetime.now()
# runtime=endtime-sttime
# print(runtime,len(l1),l1)
# print("=====================================================================")
# count=0
# for i in range(101,200,2):
# for j in range(3,i,2):
# counter2 += 1
# if not i%j:
# # print("{}%{}={}".format(i,j,i%j))
# break
# else:
# # print(i)
# count+=1
# print(count)
# print("=======================================================================")
# count=0
# for i in range(101,200,2):
# if i%6!=1 and i%6!=5:
# continue
# else:
# for j in range(5,int(i**0.5)+1,2):
# counter3 += 1
# # print("{}%{}={}".format(i, j, i % j))
# if not i%j:
# break
# else:
# # print(i)
# count+=1
# print("count:",count)
# print(counter1,counter2,counter3)
# """题目13
# 打印所有 水仙花数 ,所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.如:153=1**3+5**3+3**3
# """
# for i in range(100,1000):
# a=i//100
# b=(i-a*100)//10
# c=i%10
# if i==(a**3+b**3+c**3):
# print("{}={}**3+{}**3+{}**3".format(i,a,b,c))
# """
# 题目14 将一个正整数分解质因数,如:输入90 打印90=2*3*3*5
# """
# n=9005001
# ln=[]
# def zhishu(num:int):
# for i in range(2,int(num)):
# if not num%i:
# flag=False
# break
# else:
# flag = True
# return flag
# def fenjie(n:int):
# for i in range(2,n):
# if n%i==0:
# if zhishu(i):
# ln.append(i)
# n=int(n/i)
# if zhishu(n):
# ln.append(n)
# else:
# fenjie(n)
# break
# if zhishu(n):
# print(n,"是质数,无需分解")
# ln.append(n)
# else:
# fenjie(n)
# print("分解质因数序列:",ln)
# st1=str(n)+"="
# for k in range(len(ln)):
# if k != len(ln)-1:
# st1+=str(ln[k])+"*"
# else:
# st1+=str(ln[k])
# print(st1)
# """题目15
# 利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-90之间的用B表示,60分一下的用C表示
# """
# mark=55
# if mark<90:
# if mark>=60:
# print("B")
# else:
# print("C")
# else:
# print("A")
# """题目17
# 输入一行字符,分别统计其中的英文字母,空格,数字和其他字符的个数.
# 严格解析:有除了数字或者字母外的符号(空格,分号,etc.)都会False
# isalnum()必须是数字和字母的混合
# isalpha()不区分大小写
# isdigit() 是否为数字
# """
# st1="htt ps://www .cnblo gs.co m/wa ngbo qi/p/ 745 524 0.htm l"
# lchar=[]
# lnum=[]
# lspace=[]
# lother=[]
# for i in st1:
# if i.isalpha():
# lchar.append(i)
# elif i.isdigit():
# lnum.append(i)
# elif i==" ":
# lspace.append(i)
# else:
# lother.append(i)
# print(len(lchar),lchar)
# print(len(lnum),lnum)
# print(len(lspace),lspace)
# print(len(lother),lother)
# """题目18
# 求 s=a+aa+aaa+aaaa+aa...a 的值 其中a是一个数字,如 2+22+222+2222+22222 (此时 共有5个数相加),其中几个数相加由键盘控制
# """
# a=5
# n=9
# s=0
# ltotal=0
# for i in range(0,n):
# s+=a*10**(i)
# ltotal+=s
# print(s,ltotal)
# """题目19
# 一个数如果恰好等于它的因子之和,这个数成为完数. 如 6=1+2+3.编程找出1000以内的所有完数
# 1=1
# """
##方法1
# def wanshu(n):
# def yinzi(n):
# ln = [1]
# for i in range(2, n):
# if not n % i:
# ln.append(i)
# # n=int(n/i)
# return ln
# sum=0
# for i in yinzi(n):
# sum+=i
# if n==sum:
# print(n, "是完数")
# return [True,n]
# ls=[]
# for i in range(100):
# l1=wanshu(i)
# if l1:
# ls.append(l1[1])
# print(ls)
###方法二
# """
# 6
# 1 2 3
# 28
# 1 2 4 7 14
# 496
# 1 2 4 8 16 31 62 124 248
# """
# from sys import stdout
# for j in range(2,1001):
# k = []
# n = -1
# s = j
# for i in range(1,j):
# if j % i == 0:
# n += 1
# s -= i
# k.append(i)
#
# if s == 0:
# print(j)
# for i in range(n):
# stdout.write(str(k[i]))
# stdout.write(" ")
# print(k[n])
"""题目19
一球从100米高度自由落体,每次落地后反弹回原高度的一半,再落下,求第10次落地时,共经过多少米,滴10次反弹多高.
"""
# m=100
# n=10
# s=0
# for i in range(n):
# s+=1.5*m
# m=m/2
# print("第{}次: 球经过路径 {:<15}M,弹回高度 {:<15}M".format(i,s, m))
# else:
# print(s,m)
# """题目21
# 猴子第一天摘下若干个桃子,当天即吃了一半,有多吃一个;第二天早上又将剩下的桃子吃掉一半,又多吃一个;以后每天早上都吃了前一天身下的一半零一个,到第10天早上想吃时,反向只剩下一个桃子,求第一天共摘了多少个桃子
# n=x-x*0.5-1 ->n=0.5x-1 -->n+1=0.5x--->2*(n+1)=x -->x=2*(n+1) --->n=2*(n+1)
# """
# print("第10日还有桃子1个")
# n=1
# for i in range(9,0,-1):
# n=2*(n+1)
# print("第{}日还有桃子{}个".format(i,n))
# """题目22
# 两个乒乓球队进行比赛,各出三人,甲队为a,b,c 三人,乙队为x y x 三人 ,已抽签决定比赛名单,有人想队员打听比赛名单.a说不和x比,c说不和x,z比 请编程找出三对赛手的名单
# """
# team1=["c","b","a"] #如何保证C排在第一位 是一个大问题
# team2=["x","y","z"]
# namelist=dict()
# for i in team1:
# if i=="c" :
# for j in team2:
# if j!="x" and j!="z":
# namelist["c"]=j
# team1.remove("c")
# team2.remove(str(j))
# if i=="a" :
# for j in team2:
# if j!="x":
# namelist["a"]=j
# team1.remove("a")
# team2.remove(str(j))
# else:
# namelist[team1[0]]=team2[0]
#
# print(namelist)
# """题目23
# 打印菱形
# n-2*abs(i) 是打印输出对称的关键
# """
# n=8
# m=-(n//2)
# k=n//2+1
# for i in range(m,k):
# print("{:^8}".format("*"*(n-2*abs(i))))
#
# """
# 题目24
# 有一个分数序列:2/1,3/2,/5/3,8/5....求出这个数列前20箱之和
# """
# n1=1
# n2=2
# s=0
# for i in range(20):
# s+=n2/n1
# print("{}/{}={}".format(n2,n1,n2/n1))
# n1,n2=n2,n1+n2
# print(s)
# """题目25
# 求 1+2!+3!+4!+....+20! 的和
# 当所求阶乘数大于等于1时,用公式n!=nX(n-1)x(n-2)x•••x3x2x1进行计算
# """
# s=0
# t=1
# for i in range(1,21):
# t*=i
# s+=t
# print(i,t,s)
# """题目26
# 利用递归方法求5!
# """
# import datetime
# n=998
# t=1
# st1=datetime.datetime.now()
# for i in range(n,0,-1):
# t*=i
# en1=datetime.datetime.now()
# runtime=(en1-st1).total_seconds()
# print(runtime)
#
# n=998
# t=1
# st1=datetime.datetime.now()
# while n>0:
# t*=n
# n-=1
# en1=datetime.datetime.now()
# runtime=(en1-st1).total_seconds()
# print(runtime)
# ##递归效率比循环低,且递归次数有限制,最多998次
# n=998
# def factorial(n):
# if n==1:
# fn=1
# else:
# fn=n*factorial(n-1)
# return fn
# st1=datetime.datetime.now()
# factorial(n)
# en1=datetime.datetime.now()
# runtime=(en1-st1).total_seconds()
# print(runtime)
# """题目27
# 利用递归函数调用方式,将所输入的5个字符,以相反的顺序打印出来
# a.pop(index):删除列表a中index处的值,并且返回这个值.
# del(a[index]):删除列表a中index处的值,无返回值. del中的index可以是切片,所以可以实现批量删除.
# a.remove(value):删除列表a中第一个等于value的值,无返回.
# pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。 list.pop([index=-1])
# >>> a = [0, 2, 3, 2]
# >>> a.remove(2)
# >>> a
# [0, 3, 2]
#
# >>> a = [3, 2, 2, 1]
# >>> del a[1]
# >>> a
# [3, 2, 1]
#
# >>> a = [4, 3, 5]
# >>> a.pop(1)
# 3
# >>> a
# [4, 5]
# """
# ln=[]
# for i in range(5):
# t=input("输入{}第个字符>>>".format(i+1))
# ln.append(t)
# print(ln)
# # ln=["s", "e", "g", "q", "a"]
# def factorial(ln):
# print(ln[-1])
# if len(ln)>1:
# # del ln[-1]
# ln.pop(-1)
# factorial(ln)
# factorial(ln)
# """题目28
# 有 a b c d e . e-d=2 d-c=2 d-b=2 b-a=2 a=10 求e
# """
# a=10
# for i in range(4):
# a+=2
# print(a)
# """
# 题目29:给一个不多于5位的正整数,求 它是几位数,逆序打印出各位数
# """
# n=5
# ln=[]
# t=len(str(n))
# for i in range(t):
# ln.append(n%10)
# n=n//10
# print(t,ln)
# """题目30
# 一个5位数,判断是不是回文数,即 12321 是 回文数,个位和万位相同,十位和千位相同
# """
# n=56765
# s=str(n)
# t=int(len(s)/2)
# flag=True
# for i in range(1,t+1):
# if s[i-1]!=s[-i]:
# print(n,"不是回文数")
# break
# else:
# print(n, "是回文数")
# """
# 题目 31
# 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母
# """
# weekdict=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","Sundaysss","Sundays","Sundayssss","Sundayssss1"]
# i=0
# def weekcode(ln):
# # global i
# l1 = []
# v = input("请输入第{}个字母:".format(i + 1))
# for k in ln:
# # print("k=",k,"i=",i)
# if i<len(k):
# if str(v)==k[i] or v.upper()==k[i] or v.lower()==k[i]:
# print("跟第{}个字母匹配的有:{}".format(i+1,k))
# l1.append(k)
# print(l1)
# return l1
#
#
# while len(weekdict)>0:
# weekdict=weekcode(weekdict)
# if len(weekdict)==1:
# print("只剩下一个最匹配的结果了",weekdict)
# break
# i+=1
### 下面只判断前面2个字母
## if i>1:
# # break
"""计算杨辉三角前6行
从1开始,第n行有n项,n是正整数
第n行的数字之和为2**(n-1)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
"""
# triangle=[[1],[1,1]]
# n=20
# for i in range(2,n):
# preln=triangle[i-1]
# curln=[1]
# for j in range(0,i-1):
# curln.append(preln[j]+preln[j+1])
# curln.append(1)
# triangle.append(curln)
# # print(triangle)
# # print("======================================")
# print(triangle)
#
# def println(triangle):
# for ln in triangle:
# st1=""
# for l1 in ln:
# st1+="{:^{num}}".format(str(l1)+" ",num=7)
# else:
# print("{:^{num}}".format(st1,num=5*n))
# triangle=[]
# n=6
# for i in range(n):
# row=[1]
# triangle.append(row)
# if i==0:
# continue
# for j in range(i-1):
# row.append(triangle[i-1][j]+triangle[i-1][j+1])
# row.append(1)
# print(triangle)
# n=6
# oldline=[]
# newline=[1]
# length=0
# print(newline)
# for i in range(1,n):
# oldline=newline.copy()
# oldline.append(0)
# newline.clear()
# offset=0
# while offset<=i:
# newline.append(oldline[offset-1]+oldline[offset])
# offset+=1
# print(newline)
#
# n=8
# oldline=[]
# newline=[1]
# for i in range(1,n):
# oldline=newline.copy()
# oldline.append(0)
# newline.clear()
# for j in range(i+1):
# newline.append(oldline[j-1]+oldline[j])
# print(newline)
# """题目32
# Press any key to change color ,do you want to try it .please hurry up!
# 数值表示的参数含义:
#
# 显示方式: 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
# 前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
# 背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)
#
# 常见开头格式:
# [0m 默认字体正常显示,不高亮
# [32;0m 红色字体正常显示
# [1;32;40m 显示方式: 高亮 字体前景色:绿色 背景色:黑色
# [0;31;46m 显示方式: 正常 字体前景色:红色 背景色:青色
# [1;31m 显示方式: 高亮 字体前景色:红色 背景色:无
# 举例说明:
# 示例1:
# print("[1;35;0m字体变色,但无背景色 [0m") # 有高亮 或者 print("[1;35m字体有色,但无背景色 [0m")
# print("[1;45m 字体不变色,有背景色 [0m") # 有高亮
# print("[1;35;46m 字体有色,且有背景色 [0m") # 有高亮
# print("[0;35;46m 字体有色,且有背景色 [0m") # 无高亮
#
# #coding=utf-8
# raw_input(unicode("按回车键退出...","utf-8").encode("gbk"))
# import os
# os.system("pause")
# """
# import os
# import random
# while True:
# s=random.choice([0,1,4,5,7,22,24,25,27])
# f=random.randint(30,37)
# b=random.randint(40,48)
# print(s,f,b)
# print("[{};{};{}m 按任意键修改颜色。[0m".format(s,f,b))
# os.system("Pause")
# """
# 题目33 学习gotoxy() 与 clrscr()
# """
# """题目34 联系函数调用"""
# """题目35 文本颜色设置"""
# """题目36 求100之内的素数"""
# import math
# import datetime
# # n=100000
# # count=0
# # ln=[2]
# # st1=datetime.datetime.now()
# # for i in range(3,n+1,2):
# # for j in ln:
# # count+=1
# # if i%j==0:
# # break
# # else:
# # ln.append(i)
# # en1=datetime.datetime.now()
# # s=(en1-st1).total_seconds()
# # print(len(ln))
# # print(s,count)
#
# primenumber=[]
# count=0
# flag=False
# st1=datetime.datetime.now()
# for x in range(2,100000):
# for i in primenumber:
# count += 1
# if not x % i:
# flag=True
# break
# # if i>=math.ceil(math.sqrt(x)):
# if i**2>=x:
# print("i=",i,"x=",x)
# flag=False
# break
# if not flag:
# primenumber.append(x)
# en1=datetime.datetime.now()
# s=(en1-st1).total_seconds()
# print(len(primenumber))
# print(s,count)
# """题目37 对10个数进行排序
# 加入使用对半排序 该如何编写
# """
# ln=[1,3,66,44,99,4,6,7,8,9,0]
# ln.sort(reverse=False)
# print(ln)
# ln.sort(reverse=True)
# print(ln)
# ln=[1,3,44]
# ln2=[]
# counter=0
# for j in range(len(ln)):
# mx=0
# for i in range(len(ln)):
# counter+=1
# if ln[i]>mx:
# mx=ln[i]
# else:
# ln2.append(mx)
# ln.remove(mx)
# print(ln)
# print(ln2)
# print(counter)
# """题目38
# 求一个 3*3 矩阵对角线元素之和
# """
# ln=[[1,2,3,7,9],[4,5,6,5,8],[7,8,9,6,7],[7,8,9,6,4],[4,5,6,5,8]]
# for li in ln:
# print(li)
# print("========================")
# def doam(ln):
# l1=[]
# l2=[]
# for i in range(len(ln)):
# for j in range(len(ln[i])):
# if i==j:
# l1.append(ln[i][j])
# for k in range(len(ln[i])):
# if (i+k)==(len(ln)-1):
# l2.append(ln[i][k])
# return [l1,l2]
#
# def sline(ln):
# sun=0
# for i in ln:
# sun+=i
# return sun
# l1=doam(ln)[0]
# sl1=sline(l1)
# print(sl1)
# l2=doam(ln)[1]
# sl2=sline(l2)
# print(sl2)
# """题目39
# 有一个已经排好序的数组,先输入一个数,请按原来的规律将他插入数组
# """
# ln=[1,2,6,7,8,9,11]
# ln.sort(reverse=True)
# #先判断序列是升序还是降序
# if ln[0]>ln[1]:
# flag=True # 降序
# else:
# flag=False #升序
# n=5
# for i in range(len(ln)):
# if flag:
# if n >=ln[i]:
# ln.insert(i,n)
# break
# else:
# if n<=ln[i]:
# ln.insert(i,n)
# break
# print(ln)
# """
# 题目 40
# 将一个数组逆序输出
# """
# ln=[1,2,6,7,8,9,11]
# for i in range(len(ln)-1,-1,-1):
# print(ln[i])
"""
题目41 学习static定义静态变量
题目42 学习使用auto 定义变量的用法
题目43 学习使用static的另一用法
题目44 学习使用external 的用法
题目45 学习使用register 定义变量的方法
题目46-50 宏#define 命令练习
题目51-53 学习使用按位与& 或 | 异或^ .
题目54 取一个整数a 从右端开始的4~7位
题目55 学习使用按位取反~
题目56 画图,学用circle 画圆形
题目57 画图 学用line画直线
题目58 画图,学用rectangle 画方形
题目59 画图 综合例子
题目60 画图 综合例子
"""
"""
题目61 打印出杨辉三角形(要求打印出10行)
"""
##方法一
# triangle=[]
# n=10
# for i in range(n):
# row=[1]
# triangle.append(row)
# if i==1:
# row.append(1)
# continue
# for j in range(i-1): # i=2 0
# try:
# row.append(triangle[i-1][j]+triangle[i-1][j+1])
# except Exception as e:
# print(str(e))
# row.append(1)
# # print(triangle)
# print(triangle)
# ##方法二
# triangle=[[1],[1,1]]
# n=10
# for i in range(2,n):
# row=[1]
# for j in range(i-1):
# row.append(triangle[i-1][j]+triangle[i-1][j+1])
# row.append(1)
# triangle.append(row)
# print(triangle)
# ## 方法三
# n=10
# oldline=[]
# newline=[1]
# print(newline)
# for i in range(1,n):
# oldline=newline.copy()
# oldline.append(0)
# newline.clear()
# for j in range(i+1):
# newline.append(oldline[j-1]+oldline[j])
# print(newline)
# ##方法4:
# triangle=[]
# n=10
# for i in range(n):
# row=[1]
# for k in range(i):
# row.append((1)) if k==i-1 else row.append(0)
# triangle.append(row)
# if i==0:
# continue
# for j in range(1,i//2+1):
# val=triangle[i-1][j-1]+triangle[i-1][j]
# row[j]=val
# if j!=i-j:
# row[-j-1]=val
# print(triangle)