Python作业4

Python作业4,第1张

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]);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5650727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存