设计一个程序求出1,2,3,4,5几个数字所能组成5位数中奇数的个数
组成1位数是3个。1,3,5结尾,共3个
组成2位数是5*3个。第一位不能为0,共15个
依次类推
sum = 3
s = 3
for j in range(1, 6):
print(f'第{j}位数的数量有:', sum)
if j <= 2:
s *= 5
else:
s *= 6
sum += s
print('sum = %d' % sum)
如有帮助,望采纳,谢谢
import itertools
p = itertools.permutations("12345")
s = 0
for li in p:
if int("".join(li))%2==1:
s += 1
print(s) #输出 72
有问题可以互相探讨啊,我也是新手小白。
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢。
# -*- coding: UTF-8 -*-
def permutation(nums, p, q):#求全排序的递归函数
if p == q:#这里使用 list(nums)是因为如果直接添加 添加的都是指向nums所存数组的地址 nums变化了 s里面的数组内容也会跟着变化。
s.append(list(nums))#递归出口
else:
for i in range(p, q):
nums[i], nums[p] = nums[p], nums[i]#交换位置
permutation(nums, p+1, q)#递归调用
nums[i], nums[p] = nums[p], nums[i]#复原位置,把nums顺序恢复
s= []
nums = [i for i in range(1, 6)]#存储1,2,3,4,5的一个列表
permutation(nums, 0, len(nums))
sum = 0
length = len(s[0])
for i in range(len(s)):#判断二维数组最后一位是否为奇数
if s[i][length-1] % 2 == 1:
sum +=1
print(sum)#sum=72
#不用编程的话,1,2,3,4,5全排序总共有5*4*3*2*1个,奇数有三个,偶数有两个,
#最后一位是奇数的概率是五分之三,即120*0.6=72
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632