第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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/763159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣每日练习(3.20)补

322. 零钱兑换 想象你有一堆不同面值的硬币&#xff0c;现在的任务是用这些硬币凑出一个指定的金额&#xff0c;比如说11元&#xff0c;而且要求用的硬币数量尽可能少。 准备工作&#xff1a;首先&#xff0c;我们做了一张表&#xff08;叫dp&#xff09;&#xff0c;这张表记…

前端开发的第三方库

base64.js 地址&#xff1a;https://github.com/dankogai/js-base64 Base64.js 库提供了一个简单的 API&#xff0c;用于将数据转换为 Base64 编码&#xff0c;以及将 Base64 编码的数据解码回原始数据 Base64.js 是一个 JavaScript 库&#xff0c;用于将数据转换为 Base64 编…

LVGL:拓展部件——键盘 lv_keyboard

一、概述 此控件特点&#xff1a; 特殊Button矩阵&#xff1a;lv_keyboard 本质上是一个经过定制的按钮矩阵控件。每个按钮都可以独立触发事件或响应。预定义的键映射&#xff1a;lv_keyboard 自带了一套预设的按键布局和对应的字符映射表&#xff0c;开发者可以根据需要选择…

Vue 性能不给力?这些优化技巧帮你轻松搞定!

结合lighthouse查看各项数据&#xff0c;不断进行性能优化&#xff0c;可以从代码、项目打包、项目部署这三个层面来优化 代码层面 1、v-if和v-show区分使用 v-if&#xff08;惰性的&#xff09;用的条件判断&#xff0c;是惰性的&#xff0c;false的话初始不会渲染&#xf…

oracle迁移至gbase,sql问题总结(完善中)

最近再做国产化适配&#xff0c;需要把oracle里面的数据迁移至gbase 8a库中&#xff0c;这边把迁移过程中遇到的sql问题&#xff0c;记录下&#xff0c;现在仅迁移了一部分&#xff0c;后续会继续完善 1.ORACLE里面的NVL2函数在8a中不支持&#xff0c;可换成DECODE函数 2.表别…

二鼠打洞问题

文章目录 二鼠打洞问题测试说明Python求解 二鼠打洞问题 《九章算术》的“盈不足篇”里有一个很有意思的老鼠打洞问题。原文是这么说的&#xff1a;今有垣厚十尺&#xff0c;两鼠对穿。大鼠日一尺&#xff0c;小鼠亦一尺。大鼠日自倍&#xff0c;小鼠日自半。问&#xff1a;何…

此站点正在尝试打开 ,chrome/edge 允许http网站打开url schema

正常https链接会有首次允许选项 但http没有&#xff0c;每次都会弹出&#xff0c;非常烦人。 Chrome / Edge 配置 地址栏输入 chrome://flags/搜索Insecure origins treated as secure, 配置允许网站&#xff0c;需要协议和端口再次跳转会显示始终允许选项

关于5.x版本的Neo4j与py2neo的访问技巧

先说结果。 Neo4j是可以使用py2neo来操作的。而且网上搜到的教程和方法里&#xff0c;首推的http连接方法可能并不是最好的&#xff0c;应该用 bolt 方法可能更好。 对于大多数使用 py2neo 与 Neo4j 数据库进行交互的应用程序来说&#xff0c;建议使用 Bolt 协议&#xff08;即…

kafka面试篇

消息队列的作用&#xff1a;异步、削峰填谷、解耦 高可用&#xff0c;几乎所有相关的开源软件都支持&#xff0c;满足大多数的应用场景&#xff0c;尤其是大数据和流计算领域&#xff0c; kafka高效&#xff0c;可伸缩&#xff0c;消息持久化。支持分区、副本和容错。 对批处理…

C# 属性

C# 属性 访问器&#xff08;Accessors&#xff09; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp2 {class Student{private str…

Linux 常用命令 chgrp

Linux 常用命令 chgrp 作用 用于更改文件或目录的所属用户组。只有文件的所有者或超级用户&#xff08;root&#xff09;可以使用 chgrp 命令来更改文件的所属用户组。在使用 chgrp 命令时需要谨慎操作&#xff0c;确保对文件和目录进行正确的用户组更改&#xff0c;以避免意…

linux C/C++ 捕获 SIGSEGV 段错误信号

程序运行遇到core dumped崩溃是常见现象&#xff0c;有时候&#xff0c;我们希望程序在崩溃的时候&#xff0c;先做点其他操作再崩溃&#xff0c;比如记录崩溃时刻的堆栈信息&#xff0c;或是提前释放一些硬件资源等等&#xff0c;那么就需要让程序捕获错误信号 下面是一个捕获…

第十五届蓝桥杯模拟考试III_物联网设计与开发官方代码分析

目录 前言&#xff1a;显示界面部分&#xff1a;页面切换:数值的轮回调整&#xff1a;传递数据&#xff1a; 前言&#xff1a; 这次模拟的效果很不好。85分&#xff0c;4h的限时我花了两天完成&#xff0c;这个时间是远远超出要求的&#xff0c;而且最后还只拿到56分&#xff0…

基于electron29版本桌面应用app开发例子

基于electron29版本桌面应用app开发例子 htmljsnode.js 开发模式 生成package.json文件&#xff1a; yarn init --yes 或 npm init --yes 运行打包 yarn dev yarn build # electron与electron-builder版本不兼容问题处理办法&#xff1a; 在package.json中scripts中添加 “…

解决在 yolov8 训练自己的数据集时,matplotlib 中文乱码问题【woodwhales.cn】

为了更好的阅读体验&#xff0c;建议移步至笔者的博客阅读&#xff1a;解决在 yolov8 训练自己的数据集时&#xff0c;matplotlib 中文乱码问题 在 yolov8 训练自己的数据集时&#xff0c;如果 class 字典使用了中文&#xff0c;则在训练过程中会出现形如下面的警告&#xff1a…

面试官:(...)扩展运算符是深拷贝吗?

一、情景再现 金三银四&#xff0c;最近找工作的小伙伴是扑面而来&#xff0c;这其中少不了我的好朋友张某某同学&#xff0c;我们‘相依为命’&#xff0c;我经常开导他&#xff0c;这不最近的一次面试中他就遇到这样一个考题&#xff1a; 面试官&#xff1a;&#xff08;...&…

亚远景科技-什么是Hardware SPICE(HW SPICE)硬件过程改进与能力判定模型 ?

intacs硬件SPICE&#xff08;Software Process Improvement and Capability Determination for Hardware Engineering&#xff09;是一种针对硬件工程领域的过程改进和能力评估模型&#xff0c;旨在支持电子硬件开发。它是基于SPICE&#xff08;软件过程改进和能力评估&#xf…

【NumPy数值计算基础】NumPy数组的基本操作

目录 一、数组的索引和切片&#xff08;一&#xff09;数组的索引&#xff08;二&#xff09;数组的切片 二、数组的变换&#xff08;一&#xff09;数组转置&#xff08;二&#xff09;数组重塑&#xff08;三&#xff09;数组合并&#xff08;四&#xff09;数组分割 三、数组…

力扣242. 有效的字母异位词

思路&#xff1a;字母相互抵消的思路&#xff0c;本题字符串中只包含小写字母26位&#xff0c;那就新建record数组int[26]&#xff0c;下标0-25&#xff0c;代表小写字母a-z, 需要通过 某字符减a 来达到这一目的&#xff1b; class Solution {public boolean isAnagram(String…

ginblog博客系统/golang+vue

ginblog博客系统 前台&#xff1a; 后台&#xff1a; Gitee的项目地址&#xff0c;点击进入下载 注意&#xff1a; 数据库文件导入在model里面&#xff0c;直接导入即可。 admin和front前后台系统记住修改https里的地址为自己的IP地址&#xff1a; front同上。