22.求車速
一輛以固定速度行駛的汽車,司機(jī)在上午10點(diǎn)看到里程表上的讀數(shù)是一個(gè)對(duì)稱數(shù)(即這個(gè)數(shù)從左向右讀和從右向左讀是完全一樣的),為95859。兩小時(shí)后里程表上出現(xiàn)了一個(gè)新的對(duì)稱數(shù)。問該車的速度是多少?新的對(duì)稱數(shù)是多少?
*題目分析與算法設(shè)計(jì)
根據(jù)題意,設(shè)所求對(duì)稱數(shù)為i,其初值為95589,對(duì)其依次遞增取值,將i值的每一位分解后與其對(duì)稱位置上的數(shù)進(jìn)行比較,若每個(gè)對(duì)稱位置上的數(shù)皆相等,則可判定i即為所求的對(duì)稱數(shù)。
*程序說明與注釋
#include
void main()
{
int t,a[5]; /*數(shù)組a存放分解的數(shù)字位*/
long int k,i;
for(i=95860;;i++) /*以95860為初值,循環(huán)試探*/
{
for(t=0,k=100000;k>=10;t++) /*從高到低分解所取i值的每位數(shù)*/
{ /* 字,依次存放于a[0]~a[5]中*/
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;
}
}
}
*運(yùn)行結(jié)果
The new symmetrical number kelometers is:95959.
The velocity of the car is:50.00
*思考題
將一個(gè)數(shù)的數(shù)碼倒過來所得到的新數(shù)叫原數(shù)的反序數(shù)。如果一個(gè)數(shù)等于它的反序數(shù),則稱它為對(duì)稱數(shù)。求不超過1993的的二進(jìn)制的對(duì)稱數(shù)。
一輛以固定速度行駛的汽車,司機(jī)在上午10點(diǎn)看到里程表上的讀數(shù)是一個(gè)對(duì)稱數(shù)(即這個(gè)數(shù)從左向右讀和從右向左讀是完全一樣的),為95859。兩小時(shí)后里程表上出現(xiàn)了一個(gè)新的對(duì)稱數(shù)。問該車的速度是多少?新的對(duì)稱數(shù)是多少?
*題目分析與算法設(shè)計(jì)
根據(jù)題意,設(shè)所求對(duì)稱數(shù)為i,其初值為95589,對(duì)其依次遞增取值,將i值的每一位分解后與其對(duì)稱位置上的數(shù)進(jìn)行比較,若每個(gè)對(duì)稱位置上的數(shù)皆相等,則可判定i即為所求的對(duì)稱數(shù)。
*程序說明與注釋
#include
void main()
{
int t,a[5]; /*數(shù)組a存放分解的數(shù)字位*/
long int k,i;
for(i=95860;;i++) /*以95860為初值,循環(huán)試探*/
{
for(t=0,k=100000;k>=10;t++) /*從高到低分解所取i值的每位數(shù)*/
{ /* 字,依次存放于a[0]~a[5]中*/
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;
}
}
}
*運(yùn)行結(jié)果
The new symmetrical number kelometers is:95959.
The velocity of the car is:50.00
*思考題
將一個(gè)數(shù)的數(shù)碼倒過來所得到的新數(shù)叫原數(shù)的反序數(shù)。如果一個(gè)數(shù)等于它的反序數(shù),則稱它為對(duì)稱數(shù)。求不超過1993的的二進(jìn)制的對(duì)稱數(shù)。

