栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python作业4

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python作业4

作业四、选择结构、循环结构、函数定义与使用
作业内容:
1、有n个人围成一圈,从1开始按顺序编号,从第一个人开始从1到k(假设k = 3)报数,报到k的人退出圈子;然后圈子缩小,从下一个人继续游戏,问最后留下的是原来的第几号。
要求:编写程序,模拟上面的游戏,要求初始人数n和报数临界值k可以自由指定。运行程序并观察游戏进行的过程。使用两种方法实现,并简单分析其优劣。
2、编写程序,至少使用两种不同的方法计算100以内所有奇数的和。
3、编写程序,输出所有由1、2、3、4这4个数字组成的素数,并且在每个素数中每个数字只使用一次。
4、编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。
5、编写函数,模拟内置函数sorted()。

#4.1
#solution 1
n = input();
k = input();
arr = {};
for i in range(int(n)):
    arr[int(i)] = 1;
ans = int(n)-1;
pos = 0;
while ans!=0:    
    tmp = k;
    while tmp!=0:
        if(arr[pos]==1):
            tmp=int(tmp)-1;
            if(tmp==0):
                arr[pos] = 0;
        pos+=1;
        pos = int(pos)%int(n);
    ans-=1;
for i in range(int(n)):
    if(arr[int(i)]==1):
        print(i);  
#solution 2
n = int(input());
k = int(input());
ans = int(0);
for i in range(n):
    ans = (ans+m)%i
print(ans);
#第一种模拟实际情况,过程直观但效率低,第二种使用数学推导式,代码简洁效率高。

#4.2
#solution 1
ans = int(0);
for i in range(1,101,2):
    ans+=i;
print(ans);
#solution 2
ans = int(50+50*49*2/2);
print(ans);

#4.3
import math
def isprime(x):
    if(x==1):
        return False;
    for i in range(2,int(math.sqrt(x))+1):
        if(x%i==0):
            return False;
    return True;
def isok(x):
    x = int(x);
    arr = [0,0,0,0];
    while int(x)!=0:
        tmp = int(x%10);
        x/=10;
        if(tmp==0):
            return False;        
        if(tmp<=4):
            arr[tmp-1]+=1;
            if(arr[tmp-1]>1):
                return False;
        else:
            return False;
    return True;
for i in range(1,4322):
    if(isok(i)):
        if(isprime(i)):
            print(i);

#4.4
arr = list(map(int,input().split())); 
ans = int(0);
mx = int(0);
minn = 1e18;
for i in range(len(arr)):
    mx = max(mx,arr[i]);
    minn = min(minn,arr[i]);
    ans+=arr[i];
print('最大值为',mx);
print('最小值为',minn);
print('和为',ans);

#4.5
n = int(input());
arr = list(map(int,input().split()));
for i in range(n):
    for j in range(0,n-i-1):
        if(arr[j]>arr[j+1]):
            tmp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = tmp;
for i in range(n):
    print(arr[i]);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648532.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号