趣味题(求车速)

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

问题分析与算法设计:
根据题意,设所求对称数为i,其初值为95859,对其依次递增取值,将值得每一份分解后与其对称位置上的数进行比较,若每一个对称位置上的数皆相等,则可判断i即为所求的对称数。

#include 

int main()
{
    int t;
    int a[5];
    long int k;
    long int i;

    for( i = 95860; ; i++)
    {
        for( t = 0, k = 100000; k >= 10; t++)
    {
        a[t] = ( i % k) / ( k / 10);
        k /= 10;
    }
    if((a[0] == a[4]) && (a[1] == a[3]))
    {
        printf("The new symmetrical number kelometers is : %d%d%d%d%d\n", a[0], a[1], a[2], a[3], a[4]);
        printf("The velocity of the car is: %.2f\n", ( i - 95859) / 2.0);
        break;
    }
    }

    return 0;
}

结果截图:
这里写图片描述

你可能感兴趣的:(编程题训练)