文章目录
- Python编程题综合练习【第十周】
- 一、查找指定字符
-
- 二、角谷猜想
-
- 三、查验身份证
-
- 四、和谐列表
-
- 五、寻找不一样的约数
-
- 六、模拟圆周率
-
- 七、输出指定的英文字母
-
- 八、矩阵的乘法
-
- 九、稀疏矩阵存储
-
- 十、三个数必有最大2
-
Python编程题综合练习【第十周】
一、查找指定字符
1.题意:
2.AC代码:
n = input()
s = input()
if len(s)>20:
print("输入错误!")
else:
if n<='z' and n>='a':
s=s.lower()
c = s.rfind(n)
if c != -1:
print("index = {}".format(c))
else:
print('Not Found')
elif n<='Z' and n>='A':
s=s.upper()
c = s.rfind(n)
if c != -1:
print("index = {}".format(c))
else:
print('Not Found')
else:
c = s.rfind(n)
if c != -1:
print("index = {}".format(c))
else:
print('Not Found')
二、角谷猜想
1.题意:
2.AC代码:
#include
using namespace std;
int main()
{
int x;
cin>>x;
while(x!=1)
{
if(x%2==0)
{
cout<
cout<
三、查验身份证
1.题意:
2.AC代码:
z = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
m = ['1','0','X','9','8','7','6','5','4','3','2']
n = int(input())
t = 0
for i in range(n):
num = input()
a = num[:17]
flag = True
res = 0
for j in range(len(a)):
try:
res += int(a[j]) * z[j]
except:
flag = False
print(num)
t = 1
break
if flag:
res = res % 11
if m[res] != num[-1]:
print(num)
t = 1
if t == 0:
print('All passed')
四、和谐列表
1.题意:
2.AC代码:
a = input().split(",")
s1 = []
for i in range(len(a)):
s1.append(int(a[i]))
d={}
for i in s1:
if i in d:
d[i] += 1
else:
d[i] = 1
res = []
for i in d:
if i + 1 in d:
res.append(d[i]+d[i+1])
if not res:
print(0)
else:
print(max(res))
五、寻找不一样的约数
1.题意:
2.AC代码:
s= list(map(int,input().split()))
n= s[0]
m= s[1]
s1 = []
for i in range(n+1):
for j in range(n+1):
if i*j==n :
s1.append(i)
for i in range(m+1):
for j in range(m+1):
if i*j==m :
s1.append(i)
t = []
flag=0
for i in s1:
if s1.count(i)==1:
t.append(i)
flag=1
t.sort()
if flag==0:
print("not found")
else:
for i in range(len(t)):
if i==len(t)-1:
print(t[i])
else:
print(t[i], end=',')
六、模拟圆周率
1.题意:
2.AC代码:
from random import random, seed
s = list(map(int,input().split(",")))
n = s[0]
se = s[1]
seed(se)
t = 0.0
for i in range(n):
x, y = random(), random()
d = pow(x ** 2 + y ** 2, 0.5)
if d <= 1.0:
t = t + 1
pi = 4 * (t/n)
print("{:.5f}".format(pi))
七、输出指定的英文字母
1.题意:
2.AC代码:
st =list(input())
s=[]
for i in range(len(st)):
if st[i]<='z' and st[i]>='a':
s.append(st[i])
s.reverse()
s1=[]
s1.append(s[0])
for i in range(1,len(s)):
flag = 0
for j in range(0,i):
if s[i]==s[j]:
flag=1
break
if flag==0:
s1.append(s[i])
if len(s1)<7:
print("not found")
else:
s2 = []
for i in range(len(s1)):
if i == 6:
s2.append(s1[i])
break
else:
s2.append(s1[i])
s2.reverse()
for i in range(len(s1)):
if i==6:
print(s2[i])
break
else:
print(s2[i],end="")
八、矩阵的乘法
1.题意:
2.AC代码:
#include
using namespace std;
int a[550][550];
int b[550][550];
int c[550][550];
int main()
{
int n,m,k;
cin>>n>>m>>k;
for(int i=0;i
for(int j=0;j
cin>>a[i][j];
}
}
for(int i=0;i
for(int j=0;j
cin>>b[i][j];
}
}
for(int i=0;i
for(int j=0;j
int sum=0;
for(int t=0;t
sum+=a[i][t]*b[t][j];
}
c[i][j]=sum;
}
}
for(int i=0;i
for(int j=0;j
if(j==k-1)
printf("%d",c[i][j]);
else
printf("%d ",c[i][j]);
}
printf("n");
}
return 0;
}
九、稀疏矩阵存储
1.题意:
2.AC代码:
a = list(map(int,input().split()))
b = list(map(int,input().split()))
if len(a) != len(b):
print("不构成矩阵。")
else:
for i in range(len(a)):
print(a[i]+b[i],end=" ")
十、三个数必有最大2
1.题意:
2.AC代码:
a = eval(input())
b = eval(input())
c = eval(input())
t = max(abs(a),abs(b),abs(c))
s= []
s.append(a)
s.append(b)
s.append(c)
for i in s:
if abs(i)==t:
f=i
break;
print(t)