Python中尾数前移的算法问题

本文介绍了一种Python实现的特殊数学问题——尾数前移算法。该算法旨在找到一个自然数N,其个位数为6,通过将6移动到最前面形成的新数恰好为N的4倍。文章提供了详细的解题思路及代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值