入门训练

1、A+B问题

问题描述

输入A、B,输出A+B。
说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。
输入格式
输入的第一行包括两个整数,由空格分隔,分别表示A、B。
说明:“输入格式”是描述在测试你的程序时,所给的输入一定满足的格式。
做题时你应该假设所给的输入是一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。多余的格式检查可能会适得其反,使用你的程序错误。
在测试的时候,系统会自动将输入数据输入到你的程序中,你不能给任何提示。比如,你在输入的时候提示“请输入A、B”之类的话是不需要的,这些多余的输出会使得你的程序被判定为错误。
输出格式
输出一行,包括一个整数,表示A+B的值。

A,B=map(int,input().split())#map() 会根据提供的函数对指定序列做映射。split()分割字符串,默认以空格为分隔符。
print(A+B)

2、序列求和

问题描述
求1+2+3+…+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+…+n的值。

n=int(input())#input()是获取键盘读入函数
#注意这里不能直接迭代求和,一方面占用资源多,另一方面可能会超时。
#仔细分析问题发现是一道等差数列求和问题,直接用数学公式解决
sum=0.5*n*n+0.5*n
print(int(sum))

自己写的,迭代超时了

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

3、圆的面积

问题描述
给定圆的半径r,求圆的面积。

输入格式
输入包含一个整数r,表示圆的半径。
输出格式
输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。

对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。

实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。

import math#import导入math库函数
r=int(input())#input()是获取键盘读入函数,int()是强制类型转换为整型
s=math.pi*r*r#math.pi是调用math库函数中的
print('%.7f'%s)

4、Fibonacci数列

问题描述

​ Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。

​ 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。

输入格式

输入包含一个整数n。

输出格式

输出一行,包含一个整数,表示Fn除以10007的余数。

while True:#异常处理
    try:
        n=int(input())#键盘读入
        F1,F2=1,1
        for i in range(3,n+1):
            F1,F2=F2%10007,(F1+F2)%10007#先取余再递推防止超时
        print(F2)
    except:
        break

自己写的,先递归后求余会超时

while True:#异常处理
    try:
        n=int(input())#键盘读入
        F1,F2=1,1
        for i in range(3,n+1):
            F1,F2=F2,F1+F2#递归
        print(F2%10007)#取余
    except:
        break
最后修改:2021 年 03 月 09 日 10 : 48 AM
如果觉得我的文章对你有用,请随意赞赏