Python中尾数前移的算法问题
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2017-04-18 14:11:09
# @Author : xiaoke
import os
'''
尾数前移问题:
求一个自然数N,个位数是6,将6提到最前面,所得数是N的4倍。
解题思路:
1,令末尾数t=6,除末位以外部分n
2,t连续*10移动到最高位,再加上n,即为新的数=N*4
3,判断此时的t+n==(n*10+6)*4。
例如:1236--》6123==1236*4
'''
def fun(n):
# 临时存放传进来的值,方便下面的判断
temp=n
# 假设末位数为6
t=6
while temp>1 :
t *= 10
temp /= 10
#要求的自然数N
N=10*n+6
if t+n==4*N:
print(N)
# 在一定的范围内取值
for x in range(1,100000):
fun(x)
# 100000内结果为:N=153846,范围数取值为15384
# 1000000内结果为:N=153846,范围数取值为15384