码迷,mamicode.com
首页 > 其他好文 > 详细

华为机试题——求车速

时间:2015-05-05 10:32:04      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:

描述:

一辆以固定速度行驶的汽车,司机在上午10点看到里程表(里程表有6位)上的读数

是一个对称数(即这个数从左向右读和从右向左读是完全一样的,例如95859公里)。

两小时后里程表上出现了一个新的对称数。问该车的速度(公里/小时)是多少?

 

接口说明

原型:

    int CalcSpeedOfCar(int iCurrentMileage, int * piCarSpeed);

输入参数:

    int pcCurrentMileage:当前里程数(为对称数) (pcCurrentMileage  999999)

 

输出参数:

    int * piCarSpeed:汽车速度

 

返回值:

    0:汽车速度计算成功

        1:汽车速度计算失败,在里程表的范围内找不到下一个对称数

 

知识点:

工程环境请使用VS2005

 

题目来源: 软件训练营
练习阶段: 初级

        题目很简单,注意几个关键点,奇数位还是偶数位;整数是否为全9,中间对称位置是否为9;还有这个对称数要求是个小于七位数的整数,要进行边界检测~


#include<iostream>
using namespace std;

 /*
功能: 根据里程计算车速
原型:
    int CalcSpeedOfCar(int iCurrentMileage, int * piCarSpeed);

输入参数:
    int pcCurrentMileage:当前里程数(为对称数)(pcCurrentMileage ≤ 999999)

返回值:
    汽车速度(公里/小时)
*/

int CalcSpeedOfCar(int iCurrentMileage, int * piCarSpeed)
{
    /*在这里实现功能*/
	char tmp[7],tmp2[8];
	itoa(iCurrentMileage,tmp,10);
	int i,slen=strlen(tmp);
	if(slen>6) return 1;
	if(slen%2)//奇数
	{
		if(tmp[slen/2]<'9') 
		{
			tmp[slen/2]++;
			*piCarSpeed=(atoi(tmp)-iCurrentMileage)/2;
			return 0;
		}
		else//tmp[slen/2]=='9' 
		{
			itoa(iCurrentMileage+1,tmp2,10);
			if(strlen(tmp2)>slen)
			{
				if(slen>5) return 1;
				*piCarSpeed=1;
				return 0;
			}
			
			i=slen/2;
			while(tmp[i]=='9')
			{
				tmp[i]='0';
				i--;
			}
			tmp[i]++;
			
			for(i=0;i<slen/2;i++)
				tmp[slen-i-1]=tmp[i];
			*piCarSpeed=(atoi(tmp)-iCurrentMileage)/2;

			return 0;
		}
	}
	else//偶数
	{
		itoa(iCurrentMileage+1,tmp2,10);
		if(strlen(tmp2)>slen)
		{
			if(slen>5) return 1;
			*piCarSpeed=1;
			return 0;
		}
		i=slen/2-1;
		while(tmp[i]=='9')
		{
			tmp[i]='0';
			i--;
		}
		tmp[i]++;
		for(i=0;i<slen/2;i++)
			tmp[slen-1-i]=tmp[i];
		*piCarSpeed=(atoi(tmp)-iCurrentMileage)/2;
		return 0;
	}

    return 0;
}
int main()
{
	int speed;
	CalcSpeedOfCar(1991,&speed);
	cout<<speed<<endl;
	return 0;
}



华为机试题——求车速

标签:

原文地址:http://blog.csdn.net/wljwsj/article/details/45499243

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!