鱼C论坛

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

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

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

来个不一样的,看看速度如何
1,数字如果不超过 20位 的测这个
  1. def p340(n):
  2.     a = [0,10,190,2890,38890,488890,5888890,68888890,788888890,
  3.           8888888890, 98888888890, 1088888888890,11888888888890,
  4.           128888888888890, 1388888888888890,14888888888888890,
  5.           158888888888888890, 1688888888888888890, 17888888888888888890]
  6.     if n < 10: return n
  7.     b = 1
  8.     while a[b] < n:
  9.         b += 1
  10.     n -= a[b - 1]
  11.     tmp1, tmp2 = divmod(n, b)
  12.     tmp3 = tmp1 + pow(10, b - 1)
  13.     return tmp3 // pow(10, b - tmp2 - 1) % 10
复制代码

2.超过 20位 的测这个
  1. def p340(n):
  2.     if n < 10: return n
  3.     t, a = 1, [0]
  4.     for i in range(0, n, pow(10, t)):
  5.         if t == 1:
  6.             a.append(9*pow(10,t-1)*t + a[t-1] + 1)
  7.         else:
  8.             a.append(9*pow(10,t-1)*t + a[t-1])
  9.         if a[t] >= n:
  10.             b = t
  11.             break
  12.         else:
  13.             t += 1
  14.     n -= a[b - 1]
  15.     tmp1, tmp2 = divmod(n, b)
  16.     tmp3 = tmp1 + pow(10, b - 1)
  17.     return tmp3 // pow(10, b - tmp2 - 1) % 10
复制代码

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

解答错误

输入:10000
输出:3
预期结果:7
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入 100000000 超时
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

请考虑一下效率的问题
小甲鱼最新课程 -> https://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;(我的颜文字为什么成了这个亚子!! ...


你的速度比我快很多很多但我们两的答案不同:

  1. >>> func(999999)
  2. 运行时间: 0.4818676000000002
  3. 4
  4. >>> solve(999999)
  5. 运行时间: 8.499999999855845e-06
  6. 8
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

秒出

40 ms
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:12:30 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:13:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


[b]太厉害了,输入 100000000,0.009 毫秒就出来了!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入 100000000 超时
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

输入 100000000 超时
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

64 ms

(鱼币稍后再发)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:17:56 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:18:13 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

def f(n):

36 ms
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

36 ms
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-2 17:19:36 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

楼主,41楼的是不是10毫秒内呢?自己测试20位不到1毫秒
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好的,这个思路该怎么改呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 06:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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