如何使用For loop/While loop生成指定起始数的阶乘序列?
阶乘序列生成实现方案
你要生成的是阶乘序列,每一项对应正整数的阶乘(第k项为k!)。下面用Python给出两种循环实现方式,同时解决初始值保留的问题:
方式一:for循环实现
用变量保存当前乘积结果,初始值设为1(对应序列第一个元素),通过循环依次乘以后续整数,把结果存入列表:
# 生成前6项的示例 n_terms = 6 sequence = [] current = 1 # 初始值,对应1! for i in range(1, n_terms + 1): current *= i sequence.append(current) print(sequence) # 输出: [1, 2, 6, 24, 120, 720]
current初始为1,第一次循环乘1得到1(1!),第二次乘2得到2(2!),以此类推- 循环范围
range(1, n_terms+1)确保覆盖到需要的项数,每一步更新current并加入序列
方式二:while循环实现
用计数器控制循环次数,同样保留初始乘积值:
n_terms = 6 sequence = [] current = 1 count = 1 # 计数器,从1开始 while count <= n_terms: current *= count sequence.append(current) count += 1 print(sequence) # 输出: [1, 2, 6, 24, 120, 720]
count作为循环的终止条件,每次循环后自增1current始终保存当前阶乘结果,初始值1保证序列从1开始
如果要基于任意初始数字n(比如n=2)生成序列,只需把current的初始值设为n,然后从n+1开始乘:
start_num = 2 n_terms = 5 sequence = [start_num] current = start_num count = start_num + 1 while count <= start_num + n_terms - 1: current *= count sequence.append(current) count += 1 print(sequence) # 输出: [2, 6, 24, 120, 720]
内容的提问来源于stack exchange,提问作者Cain9745
相关产品推荐
相关产品推荐

