华为2013年机试题目整理

问题1:
/*判断一个数目是不是成对称的特点*/
bool isNum(long num)
{
	int tmp = 0;
	int i = num;
	while(i)
	{
		tmp = i%10 + tmp * 10;
		i = i /10;
	}
	return (tmp == num);
}  
问题2:

编写一个函数,将输入的一串10个数字进行从小到大排序,但是要求偶数放在偶数位置上,奇数放在奇数位置上。

缺失的位置由0补齐。输入中不会有0。

输入

输入10组随机数字

输出

按照规则排序后输出样例

输入

53 8 21 43 3 7 51 62 13 68

样例输出

样例输出3 8 7 62 13 68 21 0 43 0 51 0 53

void  QSort(int *a, int low, int high)
{
	if (low > high) return;
	int piokey = a[low];
	int i = low;
	int j = high;
	while(i < j)
	{
		while(a[j] > piokey && i < j) j--;
		a[i] = a[j];
		while(a[i] < piokey && i < j) i++;
		a[j] = a[i]; 
	}
	a[i] = piokey;
	QSort(a,i+1,high);
	QSort(a,low,i-1);
}
int OddEvenSort(int *a, int len, int *b)
{
	QSort(a,0,len-1);
	int odd = 1;
	int even = 0;
	int i = 0;
	int blen = 0;
	while ( i < len)
	{
		if (a[i]%2==0)
		{
			b[even] = a[i];
		 	even+=2;
		 	blen = blen > even ? blen:even;
		}
		else
		{
			b[odd] = a[i];
			odd+=2;
			blen = blen > odd ? blen:odd;
		}
		i++;
	}
	return blen;
}

第二题、大数求和问题描述: 两个小于128位的大数

求其和输入:1234567890987654,888888888888888

输出: 2123456779876542

void myswap(char &a, char &b)
{
	char temp;
	temp = a;
	a = b;
	b = temp;

}
void BigAdd(char *inputOne, char *inputTwo, char *outPut)
{
	int lenOne = strlen(inputOne);
	int lenTwo = strlen(inputTwo);
	int minlen = lenOne>lenTwo?lenTwo : lenOne;
	int maxlen = lenOne<lenTwo?lenTwo : lenOne;
	int c = 0;
	for(int i = 0; i < minlen; i++)
	{
		outPut[i] = (inputOne[i] + inputTwo[i] + c -2 * '0')%10 + '0';
		c = (inputOne[i] + inputTwo[i] + c -2 * '0')/10;
	} 
	if (lenOne<lenTwo)
	{
		for (int i = lenOne; i < lenTwo; i++)
		{
		
				outPut[i] = (inputTwo[i] + c - '0')%10 + '0';
			 	c = (inputTwo[i] + c - '0')/10;
			
	    }
	}
	else
	{
		for (int i = lenTwo; i < lenOne; i++)
		{
		
				outPut[i] = (inputOne[i] + c - '0')%10 + '0';
			 	c = (inputOne[i] + c - '0')/10;
		}
	}
	if (c ==1)
	{
		outPut[maxlen] = '1';
	    outPut[++maxlen]= 0;
	}
	else
	{
		outPut[maxlen] = 0;
	}
	for (int i = 0; i < maxlen / 2; i++)
	{
		myswap(outPut[i],outPut[maxlen-i-1]);
	}
	puts(outPut);
} 

描述: 给定一个以字符串形式表示的算术表达式,计算该表达式的值。
表达式支持如下运算:“+、-、*、/”,其中“*”和“/”的优先级要高于“+”和“-”;
不需要考虑括号,且表达式之间没有空格;
例如:对于表达式"3-2+15*2",该表达式值为31.
 
运行时间限制: 60 Sec 
内存限制: 256 MByte 
输入: 加减乘除四则运算表达式,长度不超过1024字节,运算式中不含有括号和空格。
 
输出: 表达式的运算结果。
 
样例输入: 3-2+15*2
 
样例输出: 31

int Calc(char *exp)
{
	char op[255];
	int data[255];
	int mapop[255];
	memset(op,0,sizeof(op));
	memset(data,0,sizeof(data));
	memset(data,0,sizeof(mapop));
	for (int i = '0'; i < '9'; i++)
	mapop[i] = 1;
	mapop['+'] = 2;
	mapop['-'] = 2;
    mapop['*'] = 3;
	mapop['/'] = 3;	
	int len = strlen(exp);
	int tp = 0;
	int td = 0;
	int to = 0;
	int ans = 0;
	for (int i = 0; i < len + 1; i++)
	{
		if(mapop[exp[i]] == 1)
		tp = tp * 10 + exp[i] -'0';
		else
		{
			 if (mapop[exp[i]] != 1 || i == len)   
					data[td++] = tp;
			 if (mapop[op[to-1]] == 3)
				{
		    		if(op[to-1] == '*')
					{
					data[td-2] = data[td-2] * tp;
					}
					else
					{
						if (data[td-2] == 0)
							return -1;
						else
						data[td-2] = data[td-2] / tp;
					}
						to--;
						td--;
				}
		}
		if(mapop[exp[i]] == 2 || mapop[exp[i]] == 3)
		{
			op[to++] = exp[i];
			tp = 0;
		}
		
	}
	for(int i = td-1; i >=1; i--)
	{	
		if (op[--to] == '+')
			{
				ans = ans + data[i];
			}
		else
		{
			ans = ans - data[i];
		}
	}
	return ans + data[0];
}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值