循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。
下面我们根据几个例题来了解循环结构的运行模式:
第1关:输出水仙花数
任务描述
本关任务: 编程,在同一行输出所有的水仙花数。 水仙花数,是指一个3位数,其各位数字立方和等于这个数本身。 例如,153就是一个水仙花数,因为153=1^3+5^3+3^3。
测试说明
平台会对你编写的代码进行测试:
预期输出: 153 370 371 407
代码解析
for i in range(100,1000):
a = i//100
b = (i//10)%10
c = i%10
if i == a**3+b**3+c**3:
print(i,end = " ")
第2关:计算偶数之和
任务描述
本关任务:编写程序,从键盘输入一个正整数,求1~n范围内所有偶数之和。
测试说明
平台会对你编写的代码进行测试:
测试输入: 请输入正整数:10
预期输出: 10以内所有偶数之和为:30
代码解析
我们可以根据range()函数的特性,设置一个2的步长:
sum = 0
n = eval(input("请输入正整数:"))
for i in range(0,n+1,2):
sum += i
print(f"{n}以内所有偶数之和为:{sum}")
第3关:计算和及平方和
任务描述
本关任务:编程,从键盘输入正整数n,计算1~n之间所有整数之和以及整数平方和。 提示:累加求和
测试说明
平台会对你编写的代码进行测试:
测试输入: 请输入正整数:100
预期输出: s1=5050 s2=338350
代码解析
s1 = 0
s2 = 0
n = eval(input("请输入正整数:"))
for i in range(1,n+1):
s1 += i
s2 += i**2
print(f"s1={s1}",end = " ")
print(f"s2={s2}")
第4关:计算奇数阶乘和
任务描述
本关任务:编写程序,从键盘输入一个正整数,求1~n范围内所有奇数阶乘之和。 如,1!+3!+5!+7!+9!+……。
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
测试输入: 请输入正整数:9
预期输出: 9以内所有奇数阶乘之和为:368047。
代码解析
我们可以先定义一个函数来求阶乘,然后按照条件累加。当然这里也可以导入math库函数factorial()直接求阶乘
def jiecheng(x):
final = 1
if x == 0:
return 1
else:
for i in range(1,x+1):
final *= i
return final
n = eval(input("请输入正整数:"))
sum = 0
for i in range(1,n+1,2):
sum += jiecheng(i)
print(f"{n}以内所有奇数阶乘之和为:{sum}。")