练习编程题-第四期

文章目录

    • 1、时间轮换
    • 2、小码哥打车
    • 3、第几天
    • 4、数字7
    • 5、数字13
    • 6、简单计算
    • 7、哈沙德数
    • 8、骰子里面的数学
    • 9、字符判断
    • 10、人民币大写数字
    • 11、闰年
    • 12、时间也能加
    • 13、11或13
    • 14、整除的总数
    • 15、古人的剩余定理
    • 16、隐晦余8
    • 17、余数
    • 18、战死四五百
    • 19、整除
    • 20、孙子歌诀
    • 21、全部整除

1、时间轮换

编写一个程序,输入24小时制的时间,然后以12小时的形式显示时间。不考虑负数或者其他特殊情况。注意不要把中午12:00显示为00:00,应该是12:00PM。凌晨00:00则是12:00AM。

格式:
输入格式:输入为整型,冒号分隔
输出格式:输出为整型,冒号分隔,以两位数的形式显示时间并加上后缀AM或者PM。

样例一:

输入: 8:7
输出: 08:07AM

答案:

'''
@Author  :S1Lu
@Date    :2022/10/26 16:35
'''

h,m=map(int,input().split(':'))
if h==24:
    print("{:0>2d}:{:0>2d}AM".format(h-12,m))
elif h==0:
    print("{:0>2d}:{:0>2d}AM".format(h+12,m))
elif h==12:
    print("{:0>2d}:{:0>2d}PM".format(h, m))
elif h<12:
    print("{:0>2d}:{:0>2d}AM".format(h, m))
else:
    print("{:0>2d}:{:0>2d}PM".format(h-12, m))

2、小码哥打车

小码哥在缅因州打车,那里只有Yellow cab, 5个迈(Mile) 以内收费10美元,里程大于5个迈小于等于10个迈的部分每个迈收费2美元,里程大于10个迈的部分每个迈收费2.5美元。不考虑负数, 0或者其他特殊情况。

格式:
输入格式:输入为整型
输出格式:输出为实型,保留2位小数

样例一:

输入: 5
输出:10.00

答案:

'''
@Author  :S1Lu
@Date    :2022/10/29 23:26 
'''
d = eval(input())
cost = 0
if d >5:
    cost = 10 + 2 * (d-5)
    if d > 10:
        cost += 0.5 * (d-10)
else:
    cost = 10
print( '%.2f ' %cost)

3、第几天

输入日期(YYYY-M-D),然后输出它是一年中的第几天。 不考虑负数或者其他特殊情况。

格式:
输入格式:输入为整型
输出格式:输出为整型

样例一:

输入: 2013-6-17
输出: 168

答案:

'''
@Author  :S1Lu
@Date    :2022/10/30 9:16 
'''

import datetime

dat = input()
y,m,d=dat.split("-")
sday = datetime.date(int(y),int(m),int(d))
count = sday - datetime.date(sday.year - 1, 12 ,31) # 减去上一年最后一天
print(count.days)

4、数字7

输入一个整数N,判断它是不是整数7的和、差类的。(此如某数等于7+7,或者7-7,或者7-7-7+7+7…)是则输出YES否则或者NO。

格式:
输入格式:输入为整型
输出格式:输出为YES或者NO

样例一:

输入: 14
输出: YES

答案:

'''
@Author  :S1Lu
@Date    :2022/10/30 9:30
'''

n = eval(input())
if n%7==0:
    print("YES")
else:
    print("NO")

5、数字13

给您一个整数输入N, 如果它是整数13的和或差(13+13, 13-13,13-13-13+1311…). 输出YES,否则输出NO。

格式:
输入格式:输入为整型
输出格式:输出为YES或者NO

样例一:

输入: 14
输出: NO

答案:

'''
@Author  :S1Lu
@Date    :2022/10/30 9:31
'''

n = eval(input())
if n%13==0:
    print("YES")
else:
    print("NO")

6、简单计算

编写一个模拟简单计算器的程序,计算表达式: a op b的值,要求a、op、b从盘输入。其中a、b (作除数时不能为0)为数值,op为运算符+、-、 *、 /。本题不考虑非法输入等特殊情况。

格式:
输入格式:输入数据和运算符
输出格式:输出为实型

样例一:

输入:3+5
输出:8.000000

答案:

'''
@Author  :S1Lu
@Date    :2022/10/30 9:35
'''
import re


text=input()
a,b=re.split(r'[+\-*/]',text)
op = re.findall(r'[+\-*/]',text)[0]
a=float(a)
b=float(b)
if op == '+':
    print('%.6f'%(a+b))
elif op == '-':
    print('%.6f' % (a - b))
elif op == '*':
    print('%.6f' % (a * b))
elif op =='/':
    print('%.6f' % (a / b))

7、哈沙德数

如果一个数字可被其数字之和整除,则称该数字为Harshad哈沙德数,输入一个正整数,判断他是不是哈沙德数,输出YES或者NO。

格式:
输入格式:输入整型
输出格式:输出YES或者NO

样例一:

输入: 156
输出: YES

答案:

'''
@Author  :S1Lu
@Date    :2022/10/30 10:14 
'''

num =input()
n = int(num)
sum = 0
l=len(num)
for i in range(1,l+1):
    sum += int(n % 10)
    n/=10
if (int(num) % sum == 0):
    print("YES")
else:
    print("NO")

8、骰子里面的数学

小码哥抛出一个六面骰子。每个面上都印有一个数字,数字在1到6之间。输入正面的数字,请猜测对面的数字并输出两数之差。

格式:
输入格式:输入为整型
输出格式:输出为整型

样例一:

输入: 5
输出: 3

答案:

'''
@Author  :S1Lu
@Date    :2022/10/30 14:08 
'''

n = eval(input())
if n == 1:
    print(-5)
elif n==6:
    print(5)
elif n==2:
    print(-3)
elif n==5:
    print(3)
elif n==3:
    print(-1)
elif n==4:
    print(1)

9、字符判断

输入一个字符,判断是数字字符、大写字母、小写字母、算术运算符、关系运算符、逻辑运算符,还其他字符,分别输出"Number" , "Capital letter”,"Lowercase letter”,“Arithmetic operators”,"Relational operators“,"Logical operators’”,"Other character”。

格式:
输入格式:输入一个字符
输出格式:输出字符

样例一:

输入: A
输出: Capital letter

答案:

'''
@Author  :S1Lu
@Date    :2022/11/7 11:44 
'''
s = input()

if s.isdigit():
    print("Number")
elif s.isupper():
    print("Capital letter")
elif s.islower():
    print("Lowercase letter")
elif s in ['+','-','*','/']:
    print("Arithmetic operators")
elif s in ['=', '>', '<']:
    print("Relational operators")
elif s in ['!', '&', '^', '|']:
    print("Logical operators")
else:
    print("Other character")

10、人民币大写数字

输入一个金额,输出对应的人民币大写数字(零壹贰叁肆伍陆柒捌玖拾)。不考负数等不合理的输入。

格式:
输入格式:输入为整型(<100)
输出格式:输出字符

样例一:

输入: 35
输出:叁拾伍元整

答案:

'''
@Author  :S1Lu
@Date    :2022/11/7 12:09 
'''

n = int(input())
lists = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖','拾']
if n >= 0 and n<= 10:
    print(lists[n]+'元整')
elif n >=11 and n <100:
    if str(n)[1] == '0':
        print(lists[int(str(n)[0])]+ '拾元整')
    else:
        print(lists[int(str(n)[0])]+ '拾'+lists[int(str(n)[1])]+ '元整')
else:
    pass

11、闰年

请编写一个简单程序,判断输入的年份是不是闰年。输入公元后的年份。

格式:
输入格式:输入整型
输出格式:输出Y或者N

样例一:

输入: 2021
输出: N

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 10:59 
'''
year=int(input())
if year%4==0 and year%100!=0 or year%400==0:
    print("Y")
else:
    print("N")

12、时间也能加

分两行输入两组时分秒,空格分隔,编写-个函数,把对应的时和时相加,分和分相加,秒和秒相加,输出结果。结果也是时分秒,要满足时间规律,比如秒的范围是0~59。不考虑不合理的输入等特殊情况。

格式:
输入格式:分两行输入两组时分秒,空格分隔,整型。
输出格式:输出整型,空格分隔。

样例一:

输入:1 2 3
	4 5 6
输出:5 7 9

备注:

本题中,分、秒存在进位,小时不存在进位。

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 11:01 
'''

h1,m1,s1=map(int,input().split())
h2,m2,s2=map(int,input().split())

s = s1 +s2
m = m1 +m2
h = h1+h2
if s>=60:
    s = s-60
    m+=1
if m>=60:
    m = m-60
    h+=1
print(h,m,s)

13、11或13

输入正整数N,判断它是否可被11或13整除,输出YES或者NO。

格式:
输入格式:输入正整数N
输出格式:输出YES或者NO

样例一:

输入: 13
输出: YES

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 11:08 
'''
n = eval(input())
if n%11==0 or n%13==0:
    print("YES")
else:
    print("NO")

14、整除的总数

输入正整数N和M,其中N<=M。求区间[N, M]中可被K整除的总数。

格式:
输入格式:输入正整数N, M和K,空格分隔。
输出格式:输出整型

样例一:

输入:6 15 3
输出:4

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 11:09 
'''
n,m,k= map(int,input().split())
sum = 0
for i in range(n,m+1):
    if i%k==0:
        sum += 1
print(sum)

15、古人的剩余定理

今有物不知其数,
三三数之剩二,
五五数之剩三,
七七数之剩二。
问物最少几何?

格式:
输入格式:无
输出格式:输出整型

样例一:

输入:无
输出: 23

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 12:09 
'''

print("23")

16、隐晦余8

存在一个数x(大于10),除以3余2,除以5余3,除以7余1,求这个数最小值。

格式:
输入格式:无
输出格式:输出整型

样例一:

输入:无
输出: 113

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 12:10
'''

print("113")

17、余数

存在一个数x(大于10),除以7余2,除以11余4,除以13余5,求这个数最小值。

格式:
输入格式:无
输出格式:输出整型

样例一:

输入:无
输出: 499

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 12:10
'''

print("499")

18、战死四五百

带1500名兵士打仗,战死四五百人,站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出6人。问战死多少人。

格式:
输入格式:无
输出格式:输出整型

样例一:

输入:无
输出: 451

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 12:11
'''

print("451")

19、整除

输入正整数N,检查它是否可以被其数字之和整除,输出YES或者NO。不考虑不合理的输入等特殊情况。

格式:
输入格式:输入正整数N
输出格式:输出YES或者NO

样例一:

输入: 18
输出: YES

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 12:11
'''

n = eval(input())

s = 0
for i in str(n):
    s+= int(i)
if n%s ==0:
    print("YES")
else:
    print("NO")

20、孙子歌诀

存在一一个数x,除以3余2,除以5余3,除以7余2,然后求这个数。明朝数学家程大位将解法编成易于上口的《孙子歌诀》:
三人同行七十稀,
五树梅花廿-支
好团圆正期,
除百零五使得知。
3人同行"70”稀,3的余数乘以70, 5树梅花"21”支, 5的余数乘以21,仔团圆正半月(15
天),7的余数乘以15。最后加在一起除以105看余数。

格式:
输入格式:
输出格式:

样例一:

输入:无
输出: 23

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 12:13
'''
print("23")

21、全部整除

输入正整数N,找到一个最小的整数K,可以被1到N的每个数整除。

格式:
输入格式:输入整型
输出格式:输出整型

样例一:

输入: 6
输出: 60

答案:

'''
@Author  :S1Lu
@Date    :2022/11/8 12:11
'''

n = eval(input())
i = 1
while(i!=0):
    flag = 0
    for j in range(1,n+1):
        if i%j==0:
            flag = 1
        else:
            flag = 0
            break
    i+=1
    if flag == 1:
        print(i-1)
        break

你可能感兴趣的:(百度松果线上菁英班,python,算法,百度)