第4周 Python程序流程控制刷题(循环结构)

2024-03-23 13:12

本文主要是介绍第4周 Python程序流程控制刷题(循环结构),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

单击题目,直接跳转到页面刷题,一周后公布答案。

  1. P5722:数列求和
  2. B2054:求平均年龄
  3. B2059:奇数求和
  4. B2064:斐波那契数列
  5. B2077:角谷猜想
  6. B2098:整数去重
  7. B2128:素数个数

1. P5722:数列求和

题目描述

计算 1 + 2 + 3 + ⋯ + ( n − 1 ) + n 1+2+3+\cdots+(n-1)+n 1+2+3++(n1)+n 的值,其中正整数 n n n 不大于 100。由于你没有高斯聪明,所以你不被允许使用等差数列求和公式直接求出答案。

输入格式

输入一个正整数 n n n

输出格式

输出一个正整数,表示最后求和的答案。

样例 1

样例输入 1

100

样例输出 1

5050

提示

数据保证, 1 ≤ n ≤ 100 1 \leq n \leq 100 1n100

参考源码1:

n = int(input())
i = 1
sum = 0
while i <= n:sum += ii += 1
print(sum)

参考源码2:

n = int(input())
i = 1
sum = 0
while True:if i > n:breaksum += ii += 1
print(sum)

参考源码3:

n = int(input())
sum = 0
for i in range(1, n+1):sum += i
print(sum)

2. B2054:求平均年龄

题目描述

班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。

输入格式

第一行有一个整数 n n n 1 ≤ n ≤ 100 1 \le n \le 100 1n100),表示学生的人数。其后 n n n 行每行有 1 1 1 个整数,表示每个学生的年龄,取值为 15 15 15 25 25 25

输出格式

输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

样例 1

样例输入 1

2
18
17

样例输出 1

17.50

参考源码:

n = int(input())
sum = 0
for i in range(n):x = int(input())sum += x
avg = sum / n
print(f'{avg:.2f}')

3. B2059:奇数求和

题目描述

计算非负整数 m m m n n n(包括 m m m n n n)之间的所有奇数的和,其中, m m m 不大于 n n n,且 n n n 不大于 300 300 300。例如 m = 3 , n = 12 , m=3,n=12, m=3,n=12, 其和则为: 3 + 5 + 7 + 9 + 11 = 35 3+5+7+9+11=35 3+5+7+9+11=35

输入格式

两个数 m m m n n n,两个数以一个空格分开,其中 0 ≤ m ≤ n ≤ 300 0 \le m \le n \le 300 0mn300

输出格式

输出一行,包含一个整数,表示 m m m n n n(包括 m m m n n n)之间的所有奇数的和。

样例 1

样例输入 1

7 15

样例输出 1

55

参考源码1:

m, n = map(int, input().split())
sum = 0
for i in range(m, n+1):if i % 2:  # 奇数求和sum += i
print(sum)

参考源码2:

m, n = map(int, input().split())
sum = 0
for i in range(m, n+1):if i % 2 == 0:  # 偶数不求和continuesum += i
print(sum)

参考源码3:

m, n = map(int, input().split())
list1 = [x for x in range(m, n+1) if x % 2 == 1]
print(sum(list1))

4. B2064:斐波那契数列

题目描述

斐波那契数列是指这样的数列:数列的第一个和第二个数都为 1 1 1,接下来每个数都等于前面 2 2 2 个数之和。
给出一个正整数 a a a,要求斐波那契数列中第 a a a 个数是多少。

输入格式

1 1 1 行是测试数据的组数 n n n,后面跟着 n n n 行输入。每组测试数据占 1 1 1 行,包括一个正整数 a a a 1 ≤ a ≤ 30 1 \le a \le 30 1a30)。

输出格式

输出有 n n n 行,每行输出对应一个输入。输出应是一个正整数,为斐波那契数列中第 a a a 个数的大小。

样例 1

样例输入 1

4
5
2
19
1

样例输出 1

5
1
4181
1

参考源码1:

n = int(input())
for i in range(n):k = int(input())s1 = 0  # 前一项s2 = 1  # 当前项for j in range(k-1):s1, s2 = s2, s1+s2# tmp = s1 + s2# s1 = s2# s2 = tmpprint(s2)

上述代码每次查询时,都要从头开始计算斐波那契数列的第k项,是不是太笨了?
本题中多次查询,查询的项不超过30,因此可以先求解出前30项,每次查询时直接输出即可。

参考源码2:

fib = [0, 1, 1]
for i in range(3, 31):fib.append(fib[i-1]+fib[i-2])
n = int(input())
for i in range(n):k = int(input())print(fib[k])

5. B2077:角谷猜想

题目描述

所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘 3 3 3 1 1 1,如果是偶数,则除以 2 2 2,得到的结果再按照上述规则重复处理,最终总能够得到 1 1 1。如,假定初始整数为 5 5 5,计算过程分别为 16 16 16 8 8 8 4 4 4 2 2 2 1 1 1
程序要求输入一个整数,将经过处理得到 1 1 1 的过程输出来。

输入格式

一个正整数 N ( N ≤ 2 , 000 , 000 ) N(N \le 2,000,000) N(N2,000,000)

输出格式

从输入整数到 1 1 1 的步骤,每一步为一行,每一部中描述计算过程。最后一行输出 End。如果输入为 1 1 1,直接输出 End

样例 1

样例输入 1

5

样例输出 1

5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End

参考源码:

n = int(input())
while n != 1:if n % 2 == 1:print(f'{n}*3+1={n*3+1}')n = n*3 + 1else:print(f'{n}/2={n//2}')n //= 2  # 注意!不能用/
print('End')

6. B2098:整数去重

题目描述

给定含有 n n n 个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。

输入格式

输入包含两行:
第一行包含一个正整数 n n n 1 ≤ n ≤ 20000 1 \le n \le 20000 1n20000),表示第二行序列中数字的个数;
第二行包含 n n n 个整数,整数之间以一个空格分开。每个整数大于等于 10 10 10 、小于等于 100 100 100

输出格式

输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。

样例 1

样例输入 1

5
10 12 93 12 75

样例输出 1

10 12 93 75

参考源码:

n = int(input())
list1 = list(map(int, input().split()))
list2 = []
for x in list1:if list2.count(x) == 0:list2.append(x)
print(*list2)

注意:本题要求去重后按照输入顺序输出,使用set去重,set是无序的,无法保证该顺序。

7. B2128:素数个数

题目描述

编程求 2 2 2 n ( n n(n n(n 为大于 2 2 2 的正整数)中有多少个素数。

输入格式

输入 n ( 2 ≤ n ≤ 50000 ) n(2 \le n \le 50000) n(2n50000)

输出格式

素数个数。

样例 1

样例输入 1

10

样例输出 1

4

参考源码:

素数是指除了1和自身之外,没有其它因子。素数测试最简单的方法是试除法,如果一个整数x是素数,则x除以区间[2,sqrt(x)]的任一个整数,均不能整除,如果有一个能够整除,则x不是素数。

n = int(input())
cnt = 0
for i in range(2, n+1):flag = Truefor j in range(2, int(i**0.5) + 1):if i % j == 0:flag = Falsebreakif flag:cnt += 1
print(cnt)

这篇关于第4周 Python程序流程控制刷题(循环结构)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838414

相关文章

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

Python实现中文文本处理与分析程序的示例详解

《Python实现中文文本处理与分析程序的示例详解》在当今信息爆炸的时代,文本数据的处理与分析成为了数据科学领域的重要课题,本文将使用Python开发一款基于Python的中文文本处理与分析程序,希望... 目录一、程序概述二、主要功能解析2.1 文件操作2.2 基础分析2.3 高级分析2.4 可视化2.5

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

Python实现终端清屏的几种方式详解

《Python实现终端清屏的几种方式详解》在使用Python进行终端交互式编程时,我们经常需要清空当前终端屏幕的内容,本文为大家整理了几种常见的实现方法,有需要的小伙伴可以参考下... 目录方法一:使用 `os` 模块调用系统命令方法二:使用 `subprocess` 模块执行命令方法三:打印多个换行符模拟

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho