#题目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%<!--=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)) # """ # 题目4 输入某年某月某日,判断这一天是一年的第几天 # """ # 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)