牛客网 - 编程初学者入门训练 - 分支控制(BC50~BC77)

BC50 你是天才吗?

描述

据说智商140以上者称为天才,KiKi想知道他自己是不是天才,请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。

输入描述:

多组输入,每行输入包括一个整数表示的智商。

输出描述:

针对每行输入,输出“Genius”。

while True:
    try:
        n = int(input())
        if n >= 140:
            print('Genius')
    except:
        break

BC51 及格分数

描述

KiKi想知道他的考试分数是否通过,请帮他判断。从键盘任意输入一个整数表示的分数,编程判断该分数是否在及格范围内,如果及格,即:分数大于等于60分,是输出“Pass”,否则,输出“Fail”。

输入描述:

多组输入,每行输入包括一个整数表示的分数(0~100)。

输出描述:

针对每行输入,输出“Pass”或“Fail”。

while True:
    try:
        n = int(input())
        if n >= 60:
            print('Pass')
        else:
            print('Fail')
    except:
        break

BC52 判断整数奇偶性

描述

KiKi想知道一个整数的奇偶性,请帮他判断。从键盘任意输入一个整数(范围-2^31~2^31-1),编程判断它的奇偶性。

输入描述:

多组输入,每行输入包括一个整数。

输出描述:

针对每行输入,输出该数是奇数(Odd)还是偶数(Even)。

while True:
    try:
        n = int(input())
        if n%2 == 0:
            print('Even')
        else:
            print('Odd')
    except:
        break

BC53 判断是元音还是辅音

描述

KiKi开始学习英文字母,BoBo老师告诉他,有五个字母A(a), E(e), I(i), O(o),U(u)称为元音,其他所有字母称为辅音,请帮他编写程序判断输入的字母是元音(Vowel)还是辅音(Consonant)。

输入描述:

多组输入,每行输入一个字母。

输出描述:

针对每组输入,输出为一行,如果输入字母是元音(包括大小写),输出“Vowel”,如果输入字母是非元音,输出“Consonant”。

while True:
    try:
        a = 'a,e,i,o,u'
        n = input().lower()
        if n in a:
            print('Vowel')
        else:
            print('Consonant')
    except:
        break

BC54 牛牛的判断题

描述

牛牛从键盘输入整数 x 和左右边界 l 和 r 共三个整数。请你判断 x 是否在 l 和 r 之间 (即是否存在 l≤x≤r )

输入描述:

依次输入 x ,l ,r 三个整数。用空格隔开。

输出描述:

如果存在l≤x≤r  则输出 true ,否则输出 false

x,l,r = list(map(int,input().split()))
if l <= x <= r:
    print('true')
else:
    print('false')

BC55 判断闰年

描述

判断一个整数n是否是闰年

输入描述:

输入一个整数n (1≤n≤2018)

输出描述:

是闰年输出"yes" 否则输出"no"

n = int(input())
if n%400 == 0 or (n%100 != 0 and n%4 == 0):
    print('yes')
else:
    print('no')

BC56 判断字母

描述

从键盘任意输入一个字符,编程判断是否是字母(包括大小写)。

输入描述:

输入包括一个字符。

输出描述:

输出该字符是字母(YES)或不是(NO)。

n = input().lower()
if 'a' <= n <= 'z':
    print('YES')
else:
    print('NO')

BC57 四季

描述

气象意义上,通常以3~5月为春季(spring),6~8月为夏季(summer),9~11月为秋季(autumn),12月~来年2月为冬季(winter)。请根据输入的年份以及月份,输出对应的季节。

输入描述:

输入的数据格式是固定的YYYYMM的形式,即:年份占4个数位,月份占2个数位。

输出描述:

输出月份对应的季节(用英文单词表示,全部用小写字母)。

n = input()
s = int(n[-2]+n[-1])
if s == 3 or s == 4 or s == 5:
    print('spring')
elif s == 6 or s == 7 or s == 8:
    print('summer')
elif s == 9 or s == 10 or s == 11:
    print('autumn')
elif s == 12 or s == 1 or s == 2:
    print('winter')

BC58 健康评估

描述

BMI指数(即身体质量指数)是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。例如:一个人的身高为1.75米,体重为68千克,他的BMI=68/(1.75^2)=22.2(千克/米^2)。当BMI指数为18.5~23.9时属正常,否则表示身体存在健康风险。编程判断人体健康情况。

输入描述:

一行,输入一个人的体重(千克)和身高(米),中间用一个空格分隔。

输出描述:

一行,输出身体Normal(正常)或Abnormal(不正常)。

w,h = list(map(float,input().split()))
BMI = w / (h**2)
if 18.5<= BMI <= 23.9:
    print('Normal')
else:
    print('Abnormal')

BC59 小乐乐找最大数

描述

小乐乐获得4个最大数,请帮他编程找到最大的数。

输入描述:

一行,4个整数,用空格分开。

输出描述:

一行,一个整数,为输入的4个整数中最大的整数。

a,b,c,d = list(map(int,input().split()))
print(max(a,b,c,d))

BC60 判断是不是字母

描述

KiKi想判断输入的字符是不是字母,请帮他编程实现。

输入描述:

多组输入,每一行输入一个字符。

输出描述:

针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。

while True:
    try:
        n = input()
        if 'a' <= n <= 'z' or 'A' <= n <= 'Z':
            print('{} is an alphabet.'.format(n))
        else:
            print('{} is not an alphabet.'.format(n))
    except:
        break

BC61 牛牛的二三七整除

描述

牛牛从键盘输入一个整数,请你判断这个整数能被 2 3 7 中哪几个数整除,并按升序输出。如果不能被 2 3 7 任意一个数整除则输出 n。

输入描述:

输入一个整数

输出描述:

输出能被 2 3 7 哪几个数整除,并按升序输出。

n = int(input())
c = []
if n%2 == 0:
    c.append(2)
if n%3 == 0:
    c.append(3)
if n%7 == 0:
    c.append(7)
c.sort()
if len(c) == 0:
    print('n')
else:
    for i in c:
        print(i,end=' ')

BC62 统计数据正负个数

描述

输入10个整数,分别统计输出正数、负数的个数。

输入描述:

输入10个整数(范围-2^31~2^31-1),用空格分隔。

输出描述:

两行,第一行正数个数,第二行负数个数,具体格式见样例。

l = list(map(int,input().split()))
zheng = []
fu = []
for i in l:
    if i > 0:
        zheng.append(i)
    elif i < 0:
        fu.append(i)
pos = len(zheng)
neg = len(fu)
print('positive:{}'.format(pos))
print('negative:{}'.format(neg))

BC63 网购

描述

KiKi非常喜欢网购,在一家店铺他看中了一件衣服,他了解到,如果今天是“双11”(11月11日)则这件衣服打7折,“双12” (12月12日)则这件衣服打8折,如果有优惠券可以额外减50元(优惠券只能在双11或双12使用),求KiKi最终所花的钱数。

数据范围:衣服价格满足1≤val≤100000 

输入描述:

一行,四个数字,第一个数表示小明看中的衣服价格,第二和第三个整数分别表示当天的月份、当天的日期、第四个整数表示是否有优惠券(有优惠券用1表示,无优惠券用0表示)。 注:输入日期保证只有“双11”和“双12”。

输出描述:

一行,小明实际花的钱数(保留两位小数)。(提示:不要指望商家倒找你钱)

a,b,c,d = list(map(float,input().split()))
if b == 11 and c == 11:
    a = a*0.7
elif b == 12 and c == 12:
    a = a*0.8
if d == 1:
    a = a - 50
if a<=0:
    print('0.00')
else:
    a = a + 0.000001
    print('{:.2f}'.format(a))

BC64 牛牛的快递

描述

牛牛正在寄快递,他了解到快递在 1kg 以内的按起步价 20 元计算,超出部分按每 kg 1元计算,不足 1kg 部分按 1kg计算。如果加急的话要额外付五元,请问牛牛总共要支付多少快递费

输入描述:

第一行输入一个单精度浮点数 a 和一个字符 b ,a 表示牛牛要寄的快递的重量,b表示牛牛是否选择加急,'y' 表示加急 ,'n' 表示不加急。

输出描述:

输出牛牛总共要支付的快递费用

a,b = input().split()
a = float(a)
if a <= 1:
    money = 20
elif a > 1:
    m,n = divmod(a,1)
    money = 20 + (m - 1)*1
    if n > 0:
        money = money + 1
    else:
        money = money
if b == 'y':
    print(int(money + 5))
elif b == 'n':
    print(int(money))

BC65 计算商品打折结算金额

描述

牛牛商场促销活动:

满100打9折;

满500打8折;

满2000打7折;

满5000打6折

牛阿姨算不清楚自己应该付多少钱,请你帮忙算一下

输入描述:

牛阿姨购买商品打折前的总金额

输出描述:

参加活动后,牛阿姨购买商品应付金额。(保留小数点后1位)

n = float(input())
if n >= 5000:
    money = n*0.6
elif n >= 2000:
    money = n*0.7
elif n >= 500:
    money = n*0.8
elif n >= 100:
    money = n*0.9
money = money + 0.000001
print('{:.1f}'.format(money))

BC66 牛牛的通勤

描述

牛牛的通勤路上有两种选择,要么走路,要么打车,牛牛走路的速度是 1m/s 。打车的速度的 10m/s ,但是打车需要等出租车 10 s,请你计算牛牛想尽快到公司应该选择打车还是走路。

输入描述:

输入一个正整数,表示牛牛到公司的距离。

输出描述:

输出牛牛想尽可能快到公司应该选择打车还是走路,走路的话输出 w , 打车的输出 v。保证答案一定不会出现两个方案时间一样的情况。

n = int(input())
time1 = n 
time2 = 10 + n/10
if time1 > time2:
    print('v')
else:
    print('w')

BC67 牛牛的金币

描述

牛牛尝试在蒙住眼睛的情况下拿到旁边的金币,假设的坐标是 (x,y) ,金币的坐标是 (x1,y1) ,金币一定在牛牛在周围,即∣x1​−x∣+∣y1​−y∣=1  请你判断牛牛应该往哪个方向伸手。

输入描述:

第一行输入 x ,y 表示牛牛的坐标。

第二行输入 x1,y1 表示金币的坐标。保证∣x1​−x∣+∣y1​−y∣=1 

坐标是整数。

输出描述:

输出牛牛应该往哪个方向伸手。

例 

(x,y)=(0,0) (x1,y1)=(0,1) ,则牛牛向上伸手,输出 'u' 。

(x,y) =(0,0) (x1,y1) = (0,-1) ,则牛牛向下伸手,输出 'd'。

(x,y) =(0,0) (x1,y1) = (1,0) ,则牛牛向右伸手,输出 'r'。

(x,y) =(0,0) (x1,y1) = (-1,0) ,则牛牛向左伸手,输出 'l'。

x,y = list(map(int,input().split()))
x1,y1 = list(map(int,input().split()))
if (x-x1) == 1:
    print('l')
elif (x-x1) == -1:
    print('r')
elif (y-y1) == 1:
    print('d')
elif (y-y1) == -1:
    print('u')

BC68 牛牛的一周

描述

牛牛的一周有七天,从周一到周日对应的英文是

1、星期一:Monday

2、星期二:Tuesday

3、星期三:Wednesday

4、星期四:Thursday

5、星期五:Friday

6、星期六:Saturday

7、星期日:Sunday

牛牛知道今天是星期几,请输出这天的英文

输入描述:

输入今天是星期几

输出描述:

输出对应的英文

dic = {'1':'Monday','2':'Tuesday','3':'Wednesday','4':'Thursday','5':'Friday','6':'Saturday','7':'Sunday'}
n = input()
print(dic[n])

BC69 HTTP状态码

描述

KiKi访问网站,得到HTTP状态码,但他不知道什么含义,BoBo老师告诉他常见HTTP状态码:200(OK,请求已成功),202(Accepted,服务器已接受请求,但尚未处理。)400(Bad Request,请求参数有误),403(Forbidden,被禁止),404(Not Found,请求失败),500(Internal Server Error,服务器内部错误),502(Bad Gateway,错误网关)。

输入描述:

多组输入,一行,一个整数(100~600),表示HTTP状态码。

输出描述:

针对每组输入的HTTP状态,输出该状态码对应的含义,具体对应如下:
200-OK
202-Accepted
400-Bad Request
403-Forbidden
404-Not Found
500-Internal Server Error
502-Bad Gateway

while True:
    try:
        dic = {'200':'OK','202':'Accepted','400':'Bad Request','403':'Forbidden','404':'Not Found','500':'Internal Server Error','502':'Bad Gateway'}
        n = input()
        print(dic[n])
    except:
        break

BC70 计算单位阶跃函数

描述

KiKi最近学习了信号与系统课程,这门课里有一个非常有趣的函数,单位阶跃函数,其中一种定义方式为:

现在试求单位冲激函数在时域t上的值。

输入描述:

题目有多组输入数据,每一行输入一个t(-1000<t<1000)表示函数的时域t。

输出描述:

输出函数的值并换行。

while True:
    try:
        a = int(input())
        if a > 0:
            print('1')
        elif a == 0:
            print('0.5')
        elif a < 0:
            print('0')
    except:
        break

 

BC71 三角形判断

描述

KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。

输入描述:

题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。

输出描述:

针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出“Equilateral triangle!”,等腰三角形则输出“Isosceles triangle!”,其余的三角形则输出“Ordinary triangle!”,反之输出“Not a triangle!”。

while True:
    try:
        a,b,c = list(map(int,input().split()))
        if a+b>c and a+c>b and b+c>a:
            if (a == b and a != c ) or (a == c and a != b ) or (b == c and b != a ):
                print('Isosceles triangle!')
            elif a == b == c:
                print('Equilateral triangle!')
            else:
                print('Ordinary triangle!')
        else:
            print('Not a triangle!')
    except:
        break

BC72 牛牛的计划

描述

牛牛有一个学习计划,他计划在 y 年 m 月 d 日开始学习,但在之前他是绝不会开始学习的,但是他一旦开始学习就不会停下来,请你判断 y1 年 m1 月 d1 日牛牛应该学习吗。

输入描述:

第一行输入 y ,m ,d ,即牛牛计划开始学习的时间。

第二行输入 y1,m1,d1,即询问的时间。

输出描述:

请你判断牛牛是否开始学习。如果是则输出 yes ,否则输出 no

a1,b1,c1 = list(map(int,input().split()))
a2,b2,c2 = list(map(int,input().split()))
if a2 < a1 or (a2 == a1 and b2 < b1) or (a2 == a1 and b2 == b1 and c2 < c1):
    print('no')
else:
    print('yes')

BC73 计算一元二次方程

描述

从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4*a*c的三种情况计算并输出方程的根。

输入描述:

多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。

输出描述:

针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。

  如果a = 0,输出“Not quadratic equation”;

  如果a ≠  0,分三种情况:

△ = 0,则两个实根相等,输出形式为:x1=x2=...

△  > 0,则两个实根不等,输出形式为:x1=...;x2=...,其中x1  <=  x2。

△  < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)

所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。

while True:
    try:
        a,b,c = list(map(float,input().split()))
        if int(a) == 0:
            print('Not quadratic equation')
        else:
            delta = b**2 - (4*a*c)
            if delta == 0:
                print('x1=x2={:.2f}'.format(-b/(2*a)+0.00000000001))
            elif delta > 0:
                x1 = ((-b)+delta**0.5)/(2*a)
                x2 = ((-b)-delta**0.5)/(2*a)
                if x1 > x2:
                    x1,x2 = x2,x1
                print('x1={:.2f};x2={:.2f}'.format(x1+0.000000001,x2+0.0000000001))
            elif delta < 0:
                m1 = (-b)/(2*a)
                n1 = ((-(delta))**0.5)/(2*a)
                if float(m1) == 0.00:
                    m1 = 0.00
                if n1 >= 0:
                    print('x1={:.2f}-{:.2f}i;x2={:.2f}+{:.2f}i'.format(m1+0.000000001,n1+0.0000000001,m1+0.000000001,n1+0.0000000001))
                else:
                    print('x1={:.2f}{:.2f}i;x2={:.2f}+{:.2f}i'.format(m1+0.000000001,n1+0.0000000001,m1+0.000000001,-(n1+0.0000000001)))
    except:
        break

BC74 获得月份天数

描述

KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。

输入描述:

多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。

输出描述:

针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。

while True:
    try:
        y,m = list(map(int,input().split()))
        month = [0,31,28,31,30,31,30,31,31,30,31,30,31]
        if y%400 == 0 or (y%100 != 0 and y%4 == 0):
            month[2] = 29
        print(month[m])
    except:
        break

BC75 小乐乐是否被叫家长

描述

小乐乐的班级进行了一次期中考试,考试一共有3门科目:数学,语文,英语,小乐乐的班主任决定给没有通过考核的同学家长开一次家长会,考核的标准是三科平均分不低于60分,所以现在想请你帮忙算一算小乐乐会不会被叫家长。

输入描述:

一行,输入三个整数(表示小乐乐的数学、语文、英语的成绩),用空格分隔。

输出描述:

一行,如果小乐乐会被请家长则输出“YES”,否则输出“NO”。

a,b,c = list(map(int,input().split()))
ave = (a+b+c)/3
if ave >= 60:
    print('NO')
else:
    print('YES')

BC76 [NOIP2008]ISBN号码

描述

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。
识别码的计算方法如下:
首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,…,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。
你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。

输入描述:

只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN号码的格式要求)。

输出描述:

共一行,假如输入的ISBN号码的识别码正确,那么输出“Right”,否则,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”)。

n = input()
a = n[0]
b = n[2]
c = n[3]
d = n[4]
e = n[6]
f = n[7]
g = n[8]
h = n[9]
i = n[10]
j = n[12]
res = int(a)*1 + int(b)*2 + int(c)*3 + int(d)*4 + int(e)*5 + int(f)*6 + int(g)*7 + int(h)*8 + int(i)*9
res1 = int(res) % 11
if j == 'X':
    if res1 == 10:
        res2 = 'X'
        if res2 == j:
            print('Right')
        else:
            print('{}-{}{}{}-{}{}{}{}{}-X'.format(a,b,c,d,e,f,g,h,i))
    else:
        print('{}-{}{}{}-{}{}{}{}{}-{}'.format(a,b,c,d,e,f,g,h,i,res1))
else:
    if res1 == int(j):
        print('Right')
    else:
        if res1 == 10:
            print('{}-{}{}{}-{}{}{}{}{}-X'.format(a,b,c,d,e,f,g,h,i))
        else:
            print('{}-{}{}{}-{}{}{}{}{}-{}'.format(a,b,c,d,e,f,g,h,i,res1))

BC77 简单计算器

描述

KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”

数据范围:字符串长度满足3≤n≤50  ,保证运算符是一个char类型字符。

输入描述:

输入一行字符串,操作数1+运算符+操作数2 (其中合法的运算符包括:+、-、*、/)。

输出描述:

输出为一行。

如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。

如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。

如果操作数2等于0.0,则输出“Wrong!Division by zero!”。

n = input()
# 加法:
if '+' in n:
    n = n.split('+')
    a = float(n[0])
    b = float(n[1])
    print('{:.4f}+{:.4f}={:.4f}'.format(a+0.00000001,b+0.00000001,a+b+0.00000001))

# 减法:
elif '-' in n:
    n = n.split('-')
    a = float(n[0])
    b = float(n[1])
    print('{:.4f}-{:.4f}={:.4f}'.format(a+0.00000001,b+0.00000001,a-b+0.00000001))

# 乘法:
elif '*' in n:
    n = n.split('*')
    a = float(n[0])
    b = float(n[1])
    print('{:.4f}*{:.4f}={:.4f}'.format(a+0.00000001,b+0.00000001,a*b+0.00000001))

# 除法:
elif '/' in n:
    n = n.split('/')
    a = float(n[0])
    b = float(n[1])
    if int(b) == 0:
        print('Wrong!Division by zero!')
    else:
        print('{:.4f}/{:.4f}={:.4f}'.format(a+0.00000001,b+0.00000001,a/b+0.00000001))

# 错误:
elif ('+' not in n) and ('-' not in n) and ('*' not in n) and ('/' not in n):
    print('Invalid operation!')

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不错就是对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值