04简单循环
1. 用一行代码求和
类型: 简单循环
描述
输入一个正整数 n ,计算从 1 到 n 各数字的和,要求用一行代码实现。
输入
一个正整数 n
输出
一个正整数
示例标准答案- # 通过range 函数生成1到输入的数的整数序列
- # 通过sum 函数对序列求和
- print(sum(range(1,int(input())+1)))
复制代码 2. 数列求和
类型:简单循环
描述
用户输入一个小于10的正整数,求1 + 12 + 123 + 1234 + …… 的前n项的和
输入
一个正整数 n(测试数据保证小于10)
输出
数列的和
示例标准答案- my_sum,temp = 0, 0
- n = int(input())
- for i in range(1,n + 1):
- temp = temp * 10 + i # 每次循环使temp乘10加i
- my_sum = my_sum + temp # 累加temp赋值给my_sum
- print(my_sum)
复制代码 3. 正负交错数列前n项和
类型:简单循环
描述
1-1/2+2/3-3/5+4/8-5/13+...的前n项和,n由用户输入(n>0),结果用str.format()方法保留小数点后6位数字输出。
输入格式
一个正整数
输出格式
前n项的和
示例标准答案- # 分析:
- # 分子规律为:1,1,2,3,4,5,...,除首个数字外是自然数
- # 分母规律为:1,2,3,5,8,13...,除首个数字外,后面每个数是前面两个数的加和
- # 符号规律:正负交替
- # 项数:1,2,3,...n共n项
- # previous, current = 1, 1
- # 1 2 1 1 + 1
- # previous, current = current, previous + current
- # previous, current = 1, 2
- # 2 3 2 1 + 2
- # previous, current = current, previous + current
- # previous, current = 2, 3
- # 3 5 3 2 + 3
- # previous, current = current, previous + current
- # previous, current = 3, 5
- # ......
- n = int(input())
- result = 1 # 首项的值,作为累加初值
- sign = -1 # 符号,第二项是负值,
- previous, current = 1, 1 # 分母数字的初值,从第二项开始符合这个规律
- for i in range(1, n): # 从1到n-1遍历n-1次
- previous, current = current, previous + current # 下一个数值是前面两个数的加和
- result = result + sign * i / current # 注意分子是 i
- sign = -sign # 改变正负号
- print('{:.6f}'.format(result))
复制代码 4. 求数列前n项的平方和
类型:简单循环
描述
现有数列:1,2,3,4,……,n,计算并输出其前n项的平方和,即求:
1×1+2×2+3×3+……+n×n的和。
输入
输入一个正整数 n
输出
数列前n项的平方和
示例标准答案- #1×1+2×2+3×3……的前n项和
- n = int(input())
- sum = 0
- for i in range(1,n+1):
- sum = sum + i * i
- print(sum)
复制代码 5. 输出0-9的数字
类型:简单循环
描述
在同一行内输出 0-9 中的前 n 个数字,输出的每个数字后跟一个空格。
输入格式
输入一个不大于10的正整数 n
输出格式
在同一行中输出 0~(n-1) 的数字
示例标准答案- n=int(input())
- for i in range(n):
- print(i,end=' ')
复制代码 6. 人生苦短我用python
类型: 简单循环
描述
输入一个小于等于12的整数n,逐个输出字符串人生苦短我用python 中前n个字符,每个字符后输出一个半角逗号和一个空隔。
输入
一个小于等于12的整数n
输出
人生苦短我用python中前n个字符
示例标准答案- n=int(input())
- s = '人生苦短我用python'
- for i in range(n):
- print(s[i],end = ', ')
复制代码 7. 2的n次方
类型:简单循环
描述
计算并输出 2 的 n 次方,n 由用户输入 。
输入格式
输入一个非负整数 n
输出格式
以整数类型输出2的 n 次方
示例标准答案- n = eval(input())
- print(pow(2,n)) #pow(x,y[,z])同x**y%z,常省略z,用于计算x的y次方
复制代码 8. 十进制整数转二进制
类型:简单循环
描述
十进制整数转二进制的方法是:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序即可得到对应的二进制数的各位。 例如:22转二进制的计算过程:
22 / 2 11 余0
11/2 5 余 1
5 /2 2 余 1
2 /2 1 余 0
1 /2 0 余 1
得到22的二进制是10110
输入格式
输入一个非负整数
输出格式
输出对应的二进制数
示例标准答案- num = int(input())
- s=''
- if num == 0:
- s = '0'
- while num != 0:
- s = s + str(num % 2) # 将num对2取余的结果转字符串拼接到s
- num = num // 2
- print(s[::-1])
- # 逆序输出字符串
复制代码 9. 分数序列求和
类型:简单循环
描述
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前 n 项之和, n 由用户输入。
输入格式
输入一个正整数
输出格式
前n项和
示例标准答案- # 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和,n由用户输入。
- # 除了首项,分子为前一项分子分母之和,分母为前一项分子
- n = int(input())
- sum_of_n = 0
- a, b = 2, 1
- for i in range(1, n + 1):
- sum_of_n = sum_of_n + a / b
- b, a = a, a + b
- print(round(sum_of_n, 3))
复制代码 10. 棋盘放米
类型:简单循环
描述
相传古代印度国王舍罕要褒赏他的聪明能干的宰相达依尔 (国际象棋发明者),问他需要什么?
达依尔回答说:“国王只要在国际象棋的棋盘第一个格子里放一粒麦子,第二个格子里放两粒,第三个格子里放四粒,按此比例以后每一格加一倍,一直放到64格(国际象棋棋盘是8×8=64格),我就感恩不尽,其他的我什么也不要了。”
国王想:“这有多少,还不容易!”让人扛来一袋小麦,但不到一会儿全用没了,再来一袋很快又没有了,结果全印度的粮食全部用完还不够,国王纳闷,怎样也算不清这笔账,请你帮国王计算一下,放到第 n (1 |