入门训练 Fibonacci数列
内存超限!
def fibonacci(n):
if 1 == n or 2 == n :
return 1
arg=[1,1]
i = 3
while(i < n+1):
arg.append(arg[i-2] + arg[i-3])
i+=1
return arg[i-2]
n = input()
n = int(n)
if(1<=n and n<=1000000):
Fib = fibonacci(n) #Fib是fibonacci数列里的第n项
x = Fib % 10007
print(x)
原因大概是没有按照说明里的要求来写,还是先算了Fn,然后才去求余。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
经过百度的帮助(雾),改进后通过。
n = input()
n = int(n)
if(1<=n and n<=1000000):
f1 = 1
f2 = 1
f3 = 1
if n>2:
i = 3
while(i < n+1):
f3 = (f1+f2)%10007
f1 = f2
f2 = f3
i+=1
print(f3)
入门训练 圆的面积
r = input()
r = int(r)
if(1<=r and r<=10000):
pi = 3.14159265358979323
area = pi*r*r
print("%.7f" % area)
入门训练 序列求和
循环必定会超时,不管是哪种循环,联想到高斯的故事……
n = input()
n = int(n)
if(n>=1 and n<=1000000000):
sum = 0
num = n
if n%2 == 0:
sum = int(n/2)*(num+(n-num+1))
else:
sum = int(n/2-0.5)*(num+(n-num+1))
sum+=int(n/2+0.5)
print(sum)
入门训练 A+B问题
input().split() 接收多个输入
a,b=map(int,input().split())
print(a+b)
(不知道为什么加了a,b范围限制反而错了?