Files
2025PY/day11/05-作业.py
2025-05-22 16:50:44 +08:00

47 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 一.1,2,3,4四个数字,能组合成多少种互不相同且没有重复的三位数.
# 通过循环去不断的进行组合
# 抓住限制条件
# 核心就是循环的嵌套:外层循环一次,内层循环要全部完成一轮,依次类推...
# 根据下面的案例外层1次内层10次外层10次内层100次外层循环一次内层全部完成一轮
# for i in range(1,11): # 外层循环一次
# for j in range(1,11):# 内层循环十次如果外层循环10次内层循环100次
# print(end='')
# 代码
# 主要:组合成三位数
# for i in range(1,5): # i=1,2,3,4
# for j in range(1,5): # j=1,2,3,4
# for k in range(1,5): # k = 1,2,3,4
# # num = i + j + k # 不能直接将数字进行相加,而是拼接成一个数字
# # num = 100 * i + 10 * j + k # 组合成三位数
# if i != j and j != k and i != k:# 互不相同
# num = int(str(i) + str(j) + str(k)) # 转换成字符串进行拼接,最终变成字符串,可以继续转换
# print(num,end=',')
# 百钱白鸡公鸡5元每只母鸡3元每只小鸡1元3只100元买一百只鸡多少种办法
# 通过循环去不断的进行组合(循环组合抓住起点和终点)
# 抓住限制条件
# 比如:
# 通过循环组合买公鸡起点是买0只终点是买20只(100/5=20)
# 通过循环组合买母鸡起点是买0只终点是买33只(100/3)
# 通过循环组合买小鸡起点是买0只终点是买100只(最多100只)
# 最终死死的抓住条件
# 假设公鸡i只 母鸡j只 小鸡k只
# 条件: i + j + k == 100 i*5 + j*3 + k*1/3 == 100
# 代码
for i in range(0,21): # 公鸡
for j in range(0,33): # 母鸡
for k in range(0,101): # 小鸡
if (i + j + k == 100) and (i*5 + j*3 + k*1/3 == 100):
print(f'你买了{i}只公鸡,{j}只母鸡,{k}只小鸡')
"""
你买了0只公鸡,25只母鸡,75只小鸡
你买了4只公鸡,18只母鸡,78只小鸡
你买了8只公鸡,11只母鸡,81只小鸡
你买了12只公鸡,4只母鸡,84只小鸡
"""