2019-02-12Python入门经典编程题1

广告

1、

身体质量指数(BMI)的计算公司为:BMI=体重/身高的平方(国际单位:kg/m2)。现在定义BMI

过轻:低于18.5

正常:18.5-23.9

过重:24-27.9

肥胖:高于28

请输入体重和身高,计算出BMI和肥胖程度

w,h=eval(input())
bmi=w/(h**2)
print('Your BMI is{0:.1f}'.format(bmi))

if bmi<18.5:
    print("过轻")
elif bmi<24:
    print("正常")
elif bmi<27.9:
    print("过重")
else:
    print("肥胖")

知识点:

{0:.1f}

表示小数点后保留1位,且输出结果为浮点数。



2、按公式:C=5/9x(F-32),将华氏温度转换为摄氏温度,并产生一张华氏温度0~300度与对应摄氏温度之间的对照表(每隔50度输出一次)

for f in range(0,301,50):
    c=5/9*(f-32)
    print("{}f={:.0f}c".format(f,c))

输出结果为:

0f=-18c

50f=10c

100f=38c

150f=66c

200f=93c

250f=121c

300f=149c


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

n=int(input())
while n!=1:
    if n%2==0:
        print("{}/2={}".format(n,n//2))
        n//=2
    else:
        print("{}*3+1={}".format(n,3*n+1))
        n=3*n+1


4、输入n,用代码实现1+2!+3!+...+n!的和并输出。

n=int(input())
s=t=1
for i in range(2,n+1):
     t*=i
     s+=t
print(s)



5、编程求解1-4这4个数字可以组成多少个无重复的四位数,并按照从小到大的顺序输出这些数字。

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            for m in range(1,5):
                if i!=k and i!=j and i!=m and j!=k and j!=m and k!=m:
                   print(1000*i+100*j+10*k+m)

输出结果如下:

1234

1243

1324

1342

1423

1432

2134

2143

2314

2341

2413

2431

3124

3142

3214

3241

3412

3421

4123

4132

4213

4231

4312

4321



6、一个数如果等于它的因子之和则称这个数为完数,例如6,6=1+2+3,编程计算1000之内的所有完数并输出。

for i in range(1,1001):
    s=0
    for j in range(1,i):
        if i%j==0:
            s+=j
    if s==i:
        print("\n",i,",",end="")
        print("它的因子有:",end="")
        for j in range(1,i):
            if i%j==0:
                print(j,end="、")


输出的结果为:

 6 ,它的因子有:1、2、3、

 28 ,它的因子有:1、2、4、7、14、

 496 ,它的因子有:1、2、4、8、16、31、62、124、248、



7、验证哥德巴赫猜想之一:2000以内的正偶数(大于等于4)都能分解为两个质数之和。每隔偶数表达成,如4=2+2

import math

def prime(x):
    if x==1:
        return False
    n=int(math.sqrt(x))
    for i in range(2,n+1):
        if x%i==0:
            return False
    return True

def GC(n):
    k=3
    while k<n:
        t=n-k
        if t<k:
            break
        if prime(k) and prime(t):
            return k,t
        k+=2

n=int(input())
if n>4:
    a,b=GC(n)
    print("{}={}+{}".format(n,a,b))
elif n==4:
    print("{}={}+{}".format(4,2,2))


致谢:本文采用的题目来自于https://www.icourse163.org

支持Ctrl+Enter提交
暂无留言,快抢沙发!