python面试题-看到一个很有意思的遇到4就跳过计费表的问题

题目:
小王同学晚上下班打出租车,以他多年的编码经验,发现出租车的计费表有点问题,总是偏大。
后来出租车司机解释说是不喜欢数字4,所以改了计费表,任何跟数字4相关的就直接跳过,其余功能正常:
3再多一块钱就变成5;
23再多一块钱就变成25;
399再多一块钱就变成500
那么问题来了:根据计费表的价格,还原实际费用

输入要求:

1<=N<=88888888

输出

一个数字(实际费用),回车结束

示例1
输入:

5

输出

4

示例2
输入

100

输出

81

100是计费表上的数字,81是实际产生的费用

参考代码

"""
作者:上海-悠悠
python QQ交流群:730246532
联系微信/QQ: 283340479
"""
while 1:
    n = input("输入N[or press 'ENTER' to quit]:")
    if n == '':
        exit(0)
    try:
        N = int(n)
    except Exception as msg:
        print('请输入合法的整数:1<=N<=88888888')
        continue
    if N <= 1 or N >= 8888888:
        print('超过范围1<=N<=88888888')
    else:
        skip = []
        for i in range(1, N):
            if '4' in str(i):
                skip.append(i)
        print(N - len(skip))

运行结果

posted @ 2022-05-26 23:18  上海-悠悠  阅读(461)  评论(0编辑  收藏  举报