问题求解——while 循环
第1关 辗转相除法
管你这那的,直接调用函数
import math
a = int(input())
b = int(input())
########## Begin ##########
print(math.gcd(a,b))
########## End ##########
第2关 计算机如何进行复杂运算
x = eval(input())
########## Begin ##########
g=x/2
while abs(x-g*g)>=1e-6:
g=(g+x/g)/2
########## End ##########
print('%.5f' % g)
第3关 计算机如何进行复杂运算(续)
x = eval(input())
########## Begin ##########
g1=x/3
g2=2*g1/3+x/(3*g1*g1)
while abs(g1-g2)>=1e-6:
g1=g2
g2=2*g1/3+x/(3*g1*g1)
########## End ##########
print('%.5f' % g2)
第4关 见证历史的数
n = int(input())
########## Begin ##########
i=1
PP=0
while i<=n:
PP=PP+((-1)**(i+1))*(1/(2*i-1))
i=i+1
pi=4*PP
########## End ##########
print('%.6f' % pi) #圆周率= 3.1415926…
第5关 见证历史的数(续)
n = int(input())
########## Begin ##########
A=0
B=0
for i in range(1,n+1):
A=A+((-1)**(i-1))/((2*i-1)*(5**(2*i-1)))
B=B+((-1)**(i-1))/((2*i-1)*(239**(2*i-1)))
pi=16*A-4*B
########## End ##########
print('%.14f' % pi) #圆周率= 3.141592653589793…
第6关 三个数的最大公约数
管你这那的,直接调用函数
import math
a = int(input())
b = int(input())
c = int(input())
########## Begin ##########
print(math.gcd(a,math.gcd(b,c)))
########## End ##########
第7关 三个数的最小公倍数
import math
a = int(input())
b = int(input())
c = int(input())
########## Begin ##########
d=math.gcd(a,b)
a=int(a/d)
b=int(b/d)
LCM1=a*b*d
e=math.gcd(LCM1,c)
LCM1=int(LCM1/e)
c=int(c/e)
print(e*LCM1*c)
########## End ##########
第8关 空瓶换酒
n = int(input())
########## Begin ##########
ping=0
gai=0
ans=0
while n>=1 or ping>=2 or gai>=4:
if n>=1:
ans=ans+n
ping=ping+n
gai=gai+n
n=0
if ping>=2:
n=n+(ping//2)
ping=ping%2
if gai>=4:
n=n+(gai//4)
gai=gai%4
print(ans)
########## End ##########

浙公网安备 33010602011771号