2024/05/08

今日学习时长:1小时

代码行数:80左右

博客数量:2篇

今天完成了几道python例题,如下:

【题目描述】用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在第一行中输入整数n和整数m的值,数据之间以空格为间隔。
在第二行中输入n个不同字母,数据之间以空格为间隔
【输出格式】首先输出所有的排列数列,每种情况一行,字母间以空格为间隔;
再者首先输出所有的组合数列,每种情况一行,在同一行中以字母增序顺序显示,字母间以空格为间隔。
【输入样例】3 2
a s d
【输出样例】Permutation:
a d
d a
a s
s a
d s
s d
Combination:
a d
a s
d s

import itertools
 
n = int(input("请输入一个整数 n(1<=n<=26): "))
m = int(input("请输入一个整数 m(m<=n): "))
 
letters = input("请输入n个不同的字母,用空格分隔: ").split()
 
permutations = list(itertools.permutations(letters, m))
combinations = list(itertools.combinations(letters, m))
 
print(f"选择 {m} 个字母的所有排列序列:")
for perm in permutations:
    print(''.join(perm))
 
print(f"选择 {m} 个字母的所有组合序列:")
for comb in combinations:
    print(' '.join(comb))

【题目描述】 假设一段楼梯共n(n>1)个台阶,小朋友一步最多能上3个台阶,那么小朋友上这段楼梯一共有多少种方法。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在一行中输入楼梯台阶的数目n。
【输出格式】输出小朋友上这段楼梯的方法数。
【输入样例】15
【输出样例】5768

def climbStairs(n):
    first3 = {1:1, 2:2, 3:4}
    if n in first3.keys():
        return first3[n]
    else:
        return climbStairs(n-1) + climbStairs(n-2) + climbStairs(n-3)
 
n = int(input("请输入台阶数 n:"))
ways = climbStairs(n)
print(f"小朋友上{n}个台阶的方法数为:{ways}")

 

【题目描述】编写程序,输出一个给定正整数x(x>1)的质因子展开式。
【输入格式】请在一行中输入整数x的值。
【输出格式】对每一组输入的x,按以下格式输出x的质因子展开式(假如x的质因子分别为a、b、c):x=abc
【输入样例】72
【输出样例】72=22233

def prime_factors(x):
    factors = []
    divisor = 2
    while x > 1:
        if x % divisor == 0:
            factors.append(divisor)
            x = x // divisor
        else:
            divisor += 1
    return factors
 
num = int(input("请输入一个正整数 x(x > 1): "))
if num > 1:
    factors = prime_factors(num)
    if len(factors) == 1:
        print(f"{num} 为质数,质因子为: {factors[0]}")
    else:
        print(f"{num} 的质因子展开式为: {' x '.join(map(str, factors))}")
else:
    print("请输入大于1的正整数。")

 

posted @ 2024-05-08 20:07  伐木工熊大  阅读(2)  评论(0编辑  收藏  举报