一道python题目

编写程序,在某次Python程序设计课程测试中,测试满分100分,判断题,1题分值1分,选择题,单选题1题分值2分,多选题1题分值3分,程序编写题,1题分值10分。请问老师可以如何出题,判断题、单选题、多选题、程序编写题各可以出多少道题?

编写程序,在某次Python程序设计课程测试中,测试满分100分,判断题,1题分值1分,选择题,单选题1题分值2分,多选题1题分值3分,程序编写题,1题分值10分。如果判断题的题量为10题、程序编写题的题量为5题,单选题、多选题各可以出多少道题?

问题1

# 四层循环
num = 1         # 用于计算有多少种方案
count = 0       # 用于计算循环的次数
for a in range(0, 101):
    for b in range(0, 101):
        for c in range(0, 101):
            for d in range(0, 101):
                count += 1
                if a + b*2 + 3*c + d*10 == 100:
                    print(f'a有{a},b有{b},c有{c},d有{d}')
                    num += 1
print(num)
print(count)

问题2

# 四层循环
num = 1         # 用于计算有多少种方案
count = 0       # 用于计算循环的次数
for a in range(0, 101):
    for b in range(0, 101):
        for c in range(0, 101):
            for d in range(0, 101):
                count += 1
                if a + b*2 + 3*c + d*10 == 100 and a==10 and d==5:
                    print(f'a有{a},b有{b},c有{c},d有{d}')
                    num += 1
print(num)
print(count)

如有帮助,望采纳,谢谢

第一题:

num = 0
for i in range(0, 100+1):
    for j in range(0, int(100/2+1)):
        for k in range(0, int(100/3+1)):
            for l in range(0, int(100/10+1)):
                if i+2*j+3*k+10*l==100:
                    num += 1
                    #print('判断题、单选题、多选题、程序编写题各可以是{0}、{1}、{2}、{3}道题'.format(i,j,k,l))
print(num)

建议这样写,运行时间短,计算量较小

第二题:

i = 10
l = 5
num = 0
score = 100 - 10- 5*10
for j in range(0, int(score/2)+1):
    for k in range(0, int(score/3)+1):
        if 2*j+3*k==score:
            num += 1
            print('判断题、单选题、多选题、程序编写题各可以是{0}、{1}、{2}、{3}道题'.format(i,j,k,l))
print(num)

两个程序的num都是方案数量

 

这情况就很多了。你需要列举?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632