1.输入NxM矩阵,矩阵元素均为整数,计算其中大于零的元素之和。
a,b = map(int,input().split()) list1 = [] sum = 0 for i in range(a): list1.extend(list(map(int,input().split()))) for i in list1: if i>0: sum+=i print(sum)
2.给你一个整数n,按要求输出n∗n的回型矩阵。
n = int(input()) a = [[0] * n for i in range(n)] p = 0 q = n - 1 t = 1 while p < q: for i in range(p, q): a[p][i] = t t += 1 for i in range(p, q): a[i][q] = t t += 1 for i in range(q, p, -1): a[q][i] = t t += 1 for i in range(q, p, -1): a[i][p] = t t += 1 p += 1 q -= 1 if p == q: a[p][q] = t for i in range(n): print(*a[i])
3.给你一个整数n,输出n∗n的蛇形矩阵。
n = int(input()) lis = [[1]] a = 0 b = 0 index = 1 for i in range(n-1): lis.append([]) #print(lis) tem = 2 if n > 1: while(tem <= n**2): if (a == 0 and index == 1): b = b + 1 index = -1 elif (b == 0 and index == -1): a = a + 1 index = 1 else: a = a - index b = b + index if (a < n and b < n): lis[a].append(tem) tem += 1 for i in range(n): print(*lis[i])
4.给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。
a,b = map(int,input().split(' ')) m = [] n = [] for i in range(a): m.append(list(map(int,input().split()))) for i in range(a): n.append(list(map(int,input().split()))) count=0 for i in range(a): for j in range(b): if m[i][j]==n[i][j]: count+=1 print('%.2f'%(count*100/(a*b)))
5.KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
n=int(input()) a=[] sumall=0 for i in range(n): raw=list(map(int,input().split())) a.append(raw) for i in range(n): for j in range(n): if i>j: sumall=sumall+a[i][j] if (sumall)==0: print('YES') else: print('NO')
6.KiKi现在得到一个包含n*m个数的整数序列,现在他需要把这n*m个数按顺序规划成一个n行m列的矩阵并输出,请你帮他完成这个任务。
a,b=map(int, input().split()) nlist=list(map(int, input().split())) for i in range(a): for j in range(b): print(nlist[j+i*b],end=" ") print()
7.KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。
n,m=map(int, input().split()) lis = [list(map(int,input().split())) for i in range(0,n)] for i in range(0,m): for j in range(0,n): print(lis[j][i],end=' ') print()
8.KiKi有一个矩阵,他想知道经过k次行变换或列变换后得到的矩阵。请编程帮他解答。
n,m=list(map(int,input().split())) a=[] for i in range(n): a.append(list(map(int,input().split()))) t=int(input()) for j in range(t): r,v1,v2=input().split() r,v1,v2=str(r),int(v1),int(v2) if r=='r': a[v1-1],a[v2-1]=a[v2-1],a[v1-1] elif r=='c': for i in range(n): a[i][v1-1],a[i][v2-1]=a[i][v2-1],a[i][v1-1] for i in range(n): for j in range(m): print(a[i][j],end=' ') print()
9.KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
n=int(input()) s = [[0]*i for i in range(1, 31)] for i in range(30): for j in range(i+1): if j==0 or i==j: s[i][j]=1 else: s[i][j]=s[i-1][j-1]+s[i-1][j] s1=s[:n] for i in range(len(s1)): for j in range(len(s1[i])): c=str(s[i][j]) print(' '*(5-len(c))+c,end='') print('')
10.KiKi和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。
n=input().split() m=input().split() j=input().split() if n[0]==m[1]==j[2]=='K' or n[2]==m[1]==j[0]=='K': print('KiKi wins!') elif n[0]==m[1]==j[2]=='B' or n[2]==m[1]==j[0]=='B': print('BoBo wins!') elif n[0]==n[1]==n[2]=='K' or m[0]==m[1]==m[2]=='K' or j[0]==j[1]==j[2]=='K' or n[0]==m[0]==j[0]=='K' or n[1]==m[1]==j[1]=='K' or n[2]==m[2]==j[2]=='K': print('KiKi wins!') elif n[0]==n[1]==n[2]=='B' or m[0]==m[1]==m[2]=='B' or j[0]==j[1]==j[2]=='B' or n[0]==m[0]==j[0]=='B' or n[1]==m[1]==j[1]=='B' or n[2]==m[2]==j[2]=='B': print('BoBo wins!') else: print('No winner!')
11.小sun上课的时候非常喜欢玩扫雷。他现小sun有一个初始的雷矩阵,他希望你帮他生成一个扫雷矩阵。
n,m=list(map(int,input().split())) a=[['-' for i in range(m+2)]] for i in range(n): b=list('-'+input()+'-') a.append(b) a.append(['-' for i in range(m+2)]) for i in range(1,n+1): for j in range(1,m+1): if a[i][j]!='*': s=0 if a[i-1][j]=='*': s=s+1 if a[i-1][j-1]=='*': s=s+1 if a[i-1][j+1]=='*': s=s+1 if a[i][j-1]=='*': s=s+1 if a[i][j+1]=='*': s=s+1 if a[i+1][j]=='*': s=s+1 if a[i+1][j-1]=='*': s=s+1 if a[i+1][j+1]=='*': s=s+1 a[i][j]=s for i in a[1:-1]: print(''.join(str(j) for j in i[1:-1]))
12.凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?
注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字 符数时,空格和换行符不计算在内。
print(len(input().replace(' ','').replace('\n','')))
13.有个软件系统登录的用户名和密码为(用户名:admin,密码:admin),用户输入用户名和密码,判断是否登录成功。
a,b = input().split() if a=='admin' and b=='admin': print("Login Success!") else: print("Login Fail!")
14.笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
import math def zishu(n): if n<=1: return False for i in range(2,int(math.sqrt(n)+1)): if n%i==0: return False else: return True word=input() arr=[0 for i in range(26)] for c in word: arr[ord(c)-97]+=1 arr.sort() minx=0 for x in arr: if x>0: minx=x break res=arr[-1]-minx if zishu(res): print('Lucky Word') print(res) else: print('No Answer') print(0)
15.对于一个较大的整数 N(1<=N<=2,000,000,000)比如 980364535,我们常常需要一位一位数这个数字是几位数,但是如果在这 个数字每三位加一个逗号,它会变得更加易于朗读。因此,这个数字加上逗号成如下的模样:980,364,535请写一个程序帮她完成这件事情
n=list(input()) i=3 while i <len(n): n.insert(-i,",") i=i+4 b="".join(n) print(b)
16.假设你们社团要竞选社长,有两名候选人分别是A和B,社团每名同学必须并且只能投一票,最终得票多的人为社长。
s = input() a = s.count('A') b = s.count('B') if a > b: print('A') elif a < b: print('B') else: print('E')
17.给定长度为n的只有小写字母的字符串s,进行m次操作,每次将[l,r]范围内所有c1字符改成c2,输出操作完的字符串。
m, n = map(int, input().split()) str_use = list(input()) for j in range(n): a, b, c, d = input().split() for j in range(int(a)-1,int(b)): if str_use[j]==c: str_use[j]=d print(''.join(str_use))
18.规定一种对于复合词的简写方式为只保留每个组成单词的首字母,并将首字母大写后再连接在一起比如 “College English Test”可以简写成“CET”,“Computer Science”可以简写为“CS”,“I am Bob”简写为“IAB”输入一个长复合词(组成单词数 sum,sum≥1且sum≤100,每个单词长度len,len,len≥1且len≤50),请你输出它的简写。
n=input().split() for i in n: print(i[0].upper(),end='')