文档章节

尾数前移

寂寞暴走伤
 寂寞暴走伤
发布于 2016/07/14 19:29
字数 383
阅读 16
收藏 0

问题描述:

求一个自然数N,个位数是6,将6提到最前面所得数是N的4倍。


我的代码:

import datetime
starttime = datetime.datetime.now()
a=b=c=0
for i in xrange(10,1000000):
    a=int(str(i)[-1::])
    if a!=6:
        continue
    b=(i-6)/10
    c=int(str(a)+str(b))
    if c==i*4:
        print i
endtime = datetime.datetime.now()
print (endtime - starttime).seconds


我的思路:

前两行和后两行是用来计算该程序运行时间的。

int(str(i)[-1::])的作用是取得数的最后一位,然后判断该数是不是等于6,然后(数-6)/10得到除了个位数之外的数,int(str(a)+str(b))是用来得到一个以6开头的新数,最后在判断这个新数是否为原数的4倍;


结果:

E:\python\python.exe D:/pycharm/python/奇猫百题/尾数前移.py

153846

6


示例代码:

def fun(n):
    nn = n
    t = 6
    while nn > 0:
        t *= 10
        nn /= 10
    m = 10 * n + 6
    if t + n == m * 4:
        print m
for x in range(1, 100000):
    fun(x)


代码分析:

示例代码的for循环直接是6以前的数nn,然后通过while循环(6不断乘以10,nn不断除以10)得到以6开头后面全为0的数t,而原数就是10*n+6,新数就是t+n,这样就得到了两个数,最后在判断即可;


总结:

我的代码因为取值范围是1000000比较慢,而示例代码循环的是100000,所以很快,事实证明我的用了6秒,它用了不到1秒;


题目出处:http://www.cheemoedu.com/exercise/82

© 著作权归作者所有

共有 人打赏支持
上一篇: 最小公倍数
寂寞暴走伤
粉丝 0
博文 40
码字总数 20969
作品 0
南阳
运维
私信 提问
浮点数的基础知识

1.浮点数的十进制表现形式 ·我们知道,在 十进制中通常一个浮点数可以用科学计数法来表示,举例: eg.1 -306.5可以表示为-0.3065*10^3 其中 - 是符号,指数3是阶或称阶码,0.3065是小数部分...

follitude
2016/05/12
47
0
浮点型数据在内存中存储的表示

实数在内存中以规范化的浮点数存放,包括数符、阶码、尾数。数的精度取决于尾数的尾数。比如32位机上float型为23位(因为规范化数的数码最高位恒为1,不必存储,实际精度为24位,下面会有详解...

Crazy_C
2012/10/12
0
0
原码、反码、补码、移码和数值计算

欢迎访问我的个人站点,老廖的个人博客。 前言   计算机的数值编码和运算应该是本科一年级就会学习的基础知识。从软件开发这个角度来说,很多时候这些知识没有在开发过程中得到有效的利用和...

钓叟
2018/11/28
0
0
原码、反码、补码、移码、真值(及(8C5A3E00)16计算)

真值: 符号位 + | X | 一般 0 正 1负 负数: -8 二进制8位表示: 1)真值 X:- 1000 2)原码:1 0001000 3)反码:1 1110111(符号位不变,其余位取反) 4)补码:1 1111000(符号位不变,最...

曦羽
2017/10/09
0
0
小朋友学C语言(43):浮点数的深入分析

IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal nu...

海天一树X
01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
12
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部