Python编程题综合练习【第十周】

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<iostream>
using namespace std;
int main()
{
    int x;
    cin>>x;
    while(x!=1)
    {
        if(x%2==0)
        {
            cout<<x<<"/2="<<x/2<<endl;
            x/=2;

        }
        else if(x%2!=0)
        {
            cout<<x<<"*3+1="<<x*3+1<<endl;
            x=x*3+1;
        }
    }
}

三、查验身份证

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<iostream>
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<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			cin>>a[i][j];
		}
	 } 
	 
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<k;j++)
		{
			cin>>b[i][j];
		}
	}
	for(int i=0;i<n;i++)  
 	{	
	 	for(int j=0;j<k;j++)             
		{	
			int sum=0;
			for(int t=0;t<m;t++)   
			{   
			  sum+=a[i][t]*b[t][j]; 
			}
			c[i][j]=sum;          
		}	
	}
	for(int i=0;i<n;i++)            
	{
		for(int j=0;j<k;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)
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值