The Fun Of Algorithm - Day13 - 求车速

问题描述

一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95589。连个小时候里程表上出现了一个新的对称数,该数仍为5位数,问该车的速度是多少,新的对称数是多少?

问题分析

假设所求对数为i,并设其初值为95850,使i的值依次递增。对每个取值分解,确保第一位和第五位, 第二位和第四位比较并相等。

算法设计

需要对一个5位数进行分解并保存成数组,比较数字也就是比较下标。

Code

# !/user/bin/python3
# -*- coding: utf-8 -*-
# @author: HHVic
# @desc: 计算车速

import time

# add timer to calculate the performance
# Basic performance
###############################################################

start = time.time()


if __name__=='__main__':

    a=[0,0,0,0,0] #列表a存放分解后的5个数字
    #i为里程数初始值,由最后结果仍是5位数,所以最大值为100000
    for i in range(95860,100000):
        t=0 #列表a的下标
        k=100000
        while k>=10:
            a[t]=(i%k)//(k//10) #保存分解后的数字
            k/=10
            t+=1

        if a[0]==a[4] and a[1]==a[3]:

            print('里程表上出现的心的对称数为:%d%d%d%d%d'%(a[0],a[1],a[2],a[3],a[4]))
            print('该车的速度:%.2f'%((i-95859)/2.0))
            break




end = time.time()
print("The Basic Runtime is {0}".format((end-start)))

结果

里程表上出现的心的对称数为:95959
该车的速度:50.00
The Basic Runtime is 0.0
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值