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位有效数字。

运行效果展示:

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

相关推荐
yannan2019031313 分钟前
【算法】(Python)贪心算法
算法·贪心算法
工业互联网专业20 分钟前
Python毕业设计选题:基于大数据的旅游景区推荐系统_django
大数据·vue.js·python·django·毕业设计·源码·课程设计
fhvyxyci27 分钟前
【C++之STL】一文学会使用 string
开发语言·数据结构·c++·stl
云卓SKYDROID27 分钟前
无人机声学侦测算法详解!
算法·无人机·科普·知识·云卓科技
2301_7969821428 分钟前
怎样使用pycharm中的服务?
python·pycharm
2301_7969821428 分钟前
‌webdriver.Chrome()参数简介
前端·chrome·python
编码追梦人1 小时前
C++之数组和字符串
c++·算法
月临水1 小时前
算法: 链表题目练习
数据结构·算法·链表
i道i1 小时前
python 爬虫 入门 六、Selenium
爬虫·python·selenium
老猿讲编程1 小时前
Python 线程学习知识大全
python·线程