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))
运行结果