鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[已解决]Python:每日一题 340

[复制链接]
发表于 2020-3-2 16:47:33 | 显示全部楼层
本帖最后由 kinkon 于 2020-3-2 17:44 编辑

来个不一样的,看看速度如何
1,数字如果不超过 20位 的测这个
def p340(n):
    a = [0,10,190,2890,38890,488890,5888890,68888890,788888890,
          8888888890, 98888888890, 1088888888890,11888888888890, 
          128888888888890, 1388888888888890,14888888888888890, 
          158888888888888890, 1688888888888888890, 17888888888888888890]
    if n < 10: return n
    b = 1
    while a[b] < n: 
        b += 1
    n -= a[b - 1]
    tmp1, tmp2 = divmod(n, b)
    tmp3 = tmp1 + pow(10, b - 1)
    return tmp3 // pow(10, b - tmp2 - 1) % 10 
2.超过 20位 的测这个
def p340(n):
    if n < 10: return n
    t, a = 1, [0]
    for i in range(0, n, pow(10, t)):
        if t == 1:
            a.append(9*pow(10,t-1)*t + a[t-1] + 1) 
        else:
            a.append(9*pow(10,t-1)*t + a[t-1])
        if a[t] >= n:
            b = t 
            break
        else:
            t += 1
    n -= a[b - 1]
    tmp1, tmp2 = divmod(n, b)
    tmp3 = tmp1 + pow(10, b - 1)
    return tmp3 // pow(10, b - tmp2 - 1) % 10 

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
zltzlt + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:05:03 | 显示全部楼层
阴阳神万物主 发表于 2020-3-1 21:19
解决!!(&#3665;&#8226;&#768;&#12610;&#8226;&#769;)&#1608;&#10023;(我的颜文字为什么成了这个亚子!! ...

解答错误

输入:10000
输出:3
预期结果:7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:05:50 | 显示全部楼层

输入 100000000 超时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:07:30 | 显示全部楼层

请考虑一下效率的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 17:10:06 | 显示全部楼层
本帖最后由 一个账号 于 2020-3-2 17:11 编辑
阴阳神万物主 发表于 2020-3-1 21:19
解决!!(&#3665;&#8226;&#768;&#12610;&#8226;&#769;)&#1608;&#10023;(我的颜文字为什么成了这个亚子!! ...


你的速度比我快很多很多但我们两的答案不同:
>>> func(999999)
运行时间: 0.4818676000000002
4
>>> solve(999999)
运行时间: 8.499999999855845e-06
8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:10:59 | 显示全部楼层
TJBEST 发表于 2020-3-1 21:55
答案来了,不知道快不快

秒出

40 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:12:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:13:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 17:13:15 | 显示全部楼层
本帖最后由 一个账号 于 2020-3-2 17:24 编辑
TJBEST 发表于 2020-3-1 21:55
答案来了,不知道快不快


[b]太厉害了,输入 100000000,0.009 毫秒就出来了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:14:05 | 显示全部楼层

输入 100000000 超时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:14:50 | 显示全部楼层
冰块彼氏 发表于 2020-3-1 23:38
def test(n):
    x = 0
    str_result = ''

输入 100000000 超时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:16:03 | 显示全部楼层
寻风 发表于 2020-3-2 00:10
def f(n):
    return ((9*n-1)*pow(10,n+1)+10)/81
   

解答错误

输入:10
输出:0
预期结果:1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:17:13 | 显示全部楼层

64 ms

(鱼币稍后再发)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:17:56 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:18:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:18:59 | 显示全部楼层
寻风 发表于 2020-3-2 14:06
多谢提醒,的确有bug,修改了一下

def f(n):

36 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:19:20 | 显示全部楼层
whosyourdaddy 发表于 2020-3-2 14:14
def func340(n):
    count = 1
    i = 9

36 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:19:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 18:16:44 | 显示全部楼层
本帖最后由 kinkon 于 2020-3-2 18:26 编辑

楼主,41楼的是不是10毫秒内呢?自己测试20位不到1毫秒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-2 19:18:52 | 显示全部楼层
zltzlt 发表于 2020-3-2 17:07
请考虑一下效率的问题

好的,这个思路该怎么改呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 22:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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