python-金币/打分/小理学数列3

一:金币
题目描述

国王将金币作为工资,发放给忠诚的骑士。

第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币......

这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。
输入

一个整数(范围1到10000),表示天数。
输出

骑士获得的金币数。
样例输入1

6

样例输出1

14

来源/分类**(难度系数:一星)**
循环结构

完整代码展示:

a=int(input())

sum_1=1

sum_2=1

sum_3=1

while sum_2<a:

sum_2+=1

for i in range(sum_2):

if sum_3>=a:

break

else:

sum_1+=sum_2

sum_3+=1

print(sum_1)

python 复制代码
a=int(input())
sum_1=1
sum_2=1
sum_3=1
while sum_2<a:
    sum_2+=1
    for i in range(sum_2):
        if sum_3>=a:
            break
        else:
            sum_1+=sum_2
            sum_3+=1
print(sum_1)

代码解释:

"a=int(input()) ",导入用户给定的天数a。

"sum_1=1

sum_2=1

sum_3=1

while sum_2<a:

sum_2+=1

for i in range(sum_2):

if sum_3>=a:

break

else:

sum_1+=sum_2

sum_3+=1 ",令sum_1为骑士获得的总金币数;sum_2为子循环密码子,sum_3为母循环密码子,初始值均为1,当sum_2<a时:sum_2+1,循环sum_2次:判断sum_3是否大于等于a,如果是,则终止for循环,否则sum_1+sum_2,sum3+1。每循环一次,sum_2+1,直至sum_2==a,跳出整个while循环。

"print(sum_1) ",打印sum_1的最终结果。

运行效果展示:

二:打分
题目描述

小赛是个热爱生活的孩子。最近他在学校组织了校园歌手大赛,并且让全校师生为歌手评分(分数的范围为 1−100 分),但由于投票系统太过于落后,小赛在最后的计票中发现了如下几种票:

分数大于 100

分数小于 1

一个最高分

一个最低分

最终的计票要将上述几种票去除后算出平均值,请你求出最后的分数。
输入

一行一个正整数 N ,表示票的总数。

一行 N 个整数,表示每张票上的分数,中间用空格分隔。
输出

输出最后的分数(保留两位小数)。
样例输入1

8

131 -12 60 20 2 -999 100000 100

样例输出1

40.00

提示

4≤N≤105

来源/分类**(难度系数:一星)**
每日一题 竞赛

完整代码展示:

a=int(input())

b=list(map(int,input().split()))

c=[]

for i in range(0,len(b)):

if 1<=b[i]<=100:

c.append(b[i])

c.sort()

c.remove(c[-1])

c.remove(c[0])

print("{:.2f}".format(sum(c)/len(c)))

python 复制代码
a=int(input())
b=list(map(int,input().split()))
c=[]
for i in range(0,len(b)):
    if 1<=b[i]<=100:
        c.append(b[i])
c.sort()
c.remove(c[-1])
c.remove(c[0])
print("{:.2f}".format(sum(c)/len(c)))

代码解释:

"a=int(input())

b=list(map(int,input().split())) ",导入用户输入的总票输a。接着导入用户输入的每张票的打分情况,并将其储存在列表b中。

"c=[]

for i in range(0,len(b)):

if 1<=b[i]<=100:

c.append(b[i]) ",建立一个空列表c,用于储存符合条件的打分。依次遍历b中元素,判断b[i]是否满足1<=b[i]<=100,如果是:则将b[i]添加进c中。

"c.sort()

c.remove(c[-1])

c.remove(c[0]) ",对c中元素进行升序排序,接着删除c中最大和最小元素(c[-1]和·c[0])。

"print("{:.2f}".format(sum(c)/len(c))) ",打印c中元素的平均值并保留2位有效数字。

运行效果展示:

三:小理学数列3
题目描述

小理准备继续进阶,计算更难的数列。

输入一个整数 n,计算 1+1/(1−3)+1/(1−3+5)+...+1/(1−3+5−...) 的值。
输入格式

输入一行,包含一个整数 n。
输出格式

输出一个浮点数,保留 3 位小数。
样例输入输出
样例输入

1
样例输出

1.000
数据范围

对于 100% 的数据,保证 1≤n≤100 。

来源/分类**(难度系数:一星)**
循环结构 模拟

完整代码展示:

a=int(input())

b=1

sum=1

while b<a:

c=0

for i in range(1,b+2):

if i%2==0:

c+=1-2*i

else:

c+=2*i-1

sum+=1/c

b+=1

print("{:.3f}".format(sum))

python 复制代码
a=int(input())
b=1
sum=1
while b<a:
    c=0
    for i in range(1,b+2):
        if i%2==0:
            c+=1-2*i
        else:
            c+=2*i-1
    sum+=1/c
    b+=1
print("{:.3f}".format(sum))  

代码解释:

"a=int(input()) ",导入用户输入的数列列数a。

"b=1

sum=1

while b<a:

c=0

for i in range(1,b+2):

if i%2==0:

c+=1-2*i

else:

c+=2*i-1

sum+=1/c

b+=1 ",令sum为数列的值,b为循环密码子,初始值均为1,当b<a时:c=0,遍历1~b+1的元素i,判断i能否被2整除,如果能:则c+=1-2*i,否则c+=2*i-1。sum+=1/c。每循环一次,b+1,直至b==a,跳出整个wihle循环。

"print("{:.3f}".format(sum)) ",打印sum的最终结果并保留3位有效数字。

运行效果展示:

(声明:以上内容均为原创)

相关推荐
盼海1 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
幽兰的天空1 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
网易独家音乐人Mike Zhou4 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书4 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
搬砖的小码农_Sky7 小时前
C语言:数组
c语言·数据结构
小喵要摸鱼7 小时前
Python 神经网络项目常用语法
python
Swift社区8 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Kent_J_Truman8 小时前
greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用
算法
先鱼鲨生9 小时前
数据结构——栈、队列
数据结构