'''练习'''
'''
1.身体质量指数(BMI,Body Mass Index)是国际上常用的衡量人体肥胖程度和是否健康的重要标准,计算公式为:BMI=体重/身高的平方(国际单位kg/㎡)。中国的成年人BMI数值定义为:
过轻:低于18.5
正常:18.5-23.9
过重:24-27.9
肥胖:高于28
请输入体重和身高,输出相应的BMI值和体重肥胖程度判断结果(too thin、normal、overweight或fat)。
[输入样例]
60,1.6
[输出样例]
Your BMI is 23.4
normal
[提示]
程序中体重和身高的输入可用“weight, height = eval(input())”语句表示。
import math
weight,height = eval(input())
bmi_val = weight/math.pow(height,2)
print('Your BMI is %.1f'%bmi_val)
if bmi_val<18.5:
print('too thin')
elif 18.5<=bmi_val<=23.9:
print('normal')
elif 24<=bmi_val<=27.9:
print('overweight')
elif bmi_val>=28:
print('fat')
'''
'''
2. 按公式:C= 5/9×(F-32) ,将华氏温度转换成摄氏温度,并产生一张华氏0~300度与对应的摄氏温度之间的对照表(每隔20度输出一次)
for i in range(0,301,20):
print('华氏温度:%d,摄氏温度:%d'%(i,5/9*(i-32)))
'''
'''
3. 角谷静夫是日本的一位著名学者,他提出了一个猜想(称为角谷猜想):对于一个正整数n,若为偶数则除以2,若为奇数则乘以3加1,得到一个新的数后按照之前的两条规则继续演算,若干次后得到的结果必然为1。输入任一正整数,输出演算过程。
[输入样例]
10
[输出样例]
10/2=5
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
num = int(input('输入任一正整数:'))
def fun(num):
if num<=0:
return 0
elif num == 1:
return 1
elif num%2 == 0:
print('{}/{}={}'.format(num,2,num/2))
return fun(num/2)
else:
print('{}*{}+1={}'.format(num,3,num*3+1))
return fun(num*3+1)
fun(num)
'''
'''
4. 输入n,用递推法(例如前项之间的关系推导后项,本题为一重循环)编程求1+2!+3!+...+n!的和并输出。
[输入样例]
5
[输出样例]
153
num = int(input('请输入阶乘数:'))
s = temp = 1
for i in range(2,num+1):
temp*=i
s += temp
print('结果为:',s)
'''
'''
5. 编程求解1-4这4个数字可以组成多少个无重复的三位数,按从小到大的顺序输出这些数字。
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i!=j!=k and i!=k:
print(i*100+j*10+k)
'''
'''
6. 验证命题:如果一个三位整数是37的倍数,则这个整数循环左移后得到的另两个3位数也是37的倍数。(注意验证命题的结果输出方式,只要输出命题为真还是假即可,而非每一个三位数都有一个真假的输出)
def fun():
for i in range(100,1000):
if i % 37 == 0:
val_1 = i%100*10+i//100
val_2 = i%10*100+i//10
if val_1%37!=0 or val_2%37!=0:
return False
return True
print(fun())
'''
'''
7. 一个数如果等于它的因子之和则称这个数为完数,例如6,6=1+2+3,编程计算1000之内的所有完数并输出。
for j in range(2,1001):
temp_val = 0
for i in range(1,j):
if j%i==0:
temp_val += i
if temp_val == j:
print("\n", j, " ", end = "")
print("its factors are ", end = "")
for v in range(1, j):
if j%v == 0:
print(v, end = " ")
'''
'''
8. 验证哥德巴赫猜想之一:2000以内的正偶数(大于等于4)都能够分解为两个质数之和。每个偶数表达成形如:4=2+2的形式。
def fun(num):
for i in range(2,num):
if num%i == 0:
return False
return True
def fun2(num):
num_new = num//2
for i in range(2,num_new+1):
if fun(i):
j = num - i
if fun(j):
print('{} = {} + {}'.format(num,i,j))
for i in range(4,2001):
fun2(i)
'''