鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: ooxx7788

[技术交流] Python: 每日一题 38

[复制链接]
发表于 2019-4-30 21:53:50 | 显示全部楼层
  1. def faulty_odometer(i):
  2.     c = 0
  3.     j = 1
  4.     while j <= i:
  5.         if '4' in str(j):
  6.             jump = 10 ** (len(str(j)) - str(j).index('4') - 1)
  7.             c += jump
  8.             j += jump
  9.         j += 1
  10.     return i - c
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-20 12:05:33 | 显示全部楼层
不明白怎么跳过的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-24 23:28:40 | 显示全部楼层
  1. # 解题思路,按照规则生成一个字典(显示值:真实值),通过显示值索引出真实值。假设真实车速在1-400公里之间
  2. dict1 = {}
  3. trans = 1
  4. for i in range(1,401):
  5.     if trans % 10 == 4:
  6.         trans += 1
  7.     if (trans // 10) % 10 == 4:
  8.         trans += 10
  9.     if ((trans // 10) //10 ) %10 == 4:
  10.         trans += 100
  11.     dict1[str(trans)] = i
  12.     trans += 1
  13. # print(dict1.keys())
  14. print(dict1['13'])
  15. print(dict1['15'])
  16. print(dict1['55'])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-7 20:04:26 | 显示全部楼层
为什么直接转换成九进制就可以了啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-10 20:24:44 | 显示全部楼层
Num=input('请输入数字:\n')
Num=list(reversed([int(i) if int(i)<4 else int(i)-1 for i in list(Num)]))
Sum=sum([Num[i]*9**i for i in range(len(Num)) ])
print(Sum)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 16:04:04 | 显示全部楼层
def foo(number):
    count = 0
    actual_Mile = 0
    for i in range(1,number+1):
        if "4" in str(i):
            count += 1
            
    actual_Mile = number - count
    print(actual_Mile)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 20:43:02 | 显示全部楼层
j = int(input("请输入计程表上面的数字:"))
r = j
n = 0
for i in range(1,j+1):
        while i :
                k = i % 10
                if k == 4:
                        n +=1
                i = i / 10
print("实际数字为"+str(r-n))
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:10:04 | 显示全部楼层
  1. j = int(input("请输入计程表上面的数字:"))
  2. r = j
  3. n = 0
  4. for i in range(1,j+1):
  5.         while i :
  6.                 k = i % 10
  7.                 if k == 4:
  8.                         n +=1
  9.                 i = int(i / 10)
  10.                 print(i)
  11. print("实际数字为"+str(r-n))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:29:50 | 显示全部楼层
大佬 看了你的代码 你的方法不仅仅是巧妙简直是伟大呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-22 13:34:36 | 显示全部楼层
d
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 16:50:35 | 显示全部楼层
6666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-11 18:25:52 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-12 07:51:36 | 显示全部楼层
不会
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-15 15:24:53 | 显示全部楼层
'''
有一个车的里程表是以整数方式显示的,但是有个毛病,每到4时会直接跳至5,例如3后面本应该显示4,但是直接显示为5。
那么当显示为13公里的时候,实际上是12公里。(因为4被跳了。)
而当显示为15公里的时候,实际上是13公里。(因为4和14被跳了。)

现在请给出一个函数,当输入显示公里数时,返回实际公里数。
'''

'''

'''
def assert_equals(func,target):
    if func == target:
        print("Success!")
    else:
        print('Fail! {0} not equals {1}'.format(func, target))

def faulty_odometer(num):
    num1 = num
    list = []
    while num%10>=0 and num !=0:
        list.append(num%10)
        num = num//10
    # 按照从高位到地位的方式千百十个位的顺序存储
    list.reverse()
    len1 = len(list)-1
    for i in list:
        temp = 10**len1
        k = num1 // temp
        n = k // 10
        if k % 10 > 4:
            n = n + 1
        num1 = num1 - n*temp
        len1 = len1-1
    return num1

assert_equals(faulty_odometer(13),12)
assert_equals(faulty_odometer(15),13)
assert_equals(faulty_odometer(55),40)
assert_equals(faulty_odometer(2005),1462)
assert_equals(faulty_odometer(1500),1053)
assert_equals(faulty_odometer(999999),531440)
assert_equals(faulty_odometer(165826622),69517865)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-27 17:06:24 | 显示全部楼层
学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-29 15:20:00 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-3-29 16:00:19 | 显示全部楼层
看评论,又学到了...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-25 21:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表