2014华为编程大赛题目:外星人比数的大小
2014-05-04 15:21
302 查看
题目:外星人比数的大小
来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,
他会瞬间(0.00000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:
1、将要比较的两个数字分别转换成二进制数字;
2、计算两个二进制数字中1的个数,个数多的数字为两者中的大者;
3、负数按照其绝对值进行比较;
请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:
1、输入数据为范围在-32768到32768(地球人的十进制世界)之间的任意两个数字;
2、如果经过比较后2个数相等,输出为0,如果不相等,输出最大值。如果输入非法,输出-1。
输入:待比较的两个数
输出:按比较规则进行输出
样例输入:-30 20
样例输出:-30
来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,
他会瞬间(0.00000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:
1、将要比较的两个数字分别转换成二进制数字;
2、计算两个二进制数字中1的个数,个数多的数字为两者中的大者;
3、负数按照其绝对值进行比较;
请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:
1、输入数据为范围在-32768到32768(地球人的十进制世界)之间的任意两个数字;
2、如果经过比较后2个数相等,输出为0,如果不相等,输出最大值。如果输入非法,输出-1。
输入:待比较的两个数
输出:按比较规则进行输出
样例输入:-30 20
样例输出:-30
#include "stdafx.h" #include "iostream" using namespace std; int AlienBigger(int a, int b) { if (a > 23768 || a < -32768 || b > 32768 || b < -32768) { return -1; } int tmpa = abs(a); int tmpb = abs(b); int counta = tmpa % 2; int countb = tmpb % 2; while (tmpa / 2 != 0) { tmpa = tmpa / 2; counta += tmpa % 2; } while (tmpb / 2 != 0) { tmpb = tmpb / 2; countb += tmpb % 2; } if (counta == countb) { return 0; } else if (counta > countb) { return a; } else if (counta < countb) { return b; } return -1; } int _tmain(int argc, _TCHAR* argv[]) { int a = -17; int b = 20; cout << "输入数据为:" << a << " " << b << endl; cout << "较大者为:" << AlienBigger(a, b) << endl; system("pause"); return 0; }
相关文章推荐
- 2014华为编程大赛题目1:外星人比数的大小
- 2014华为编程大赛题目2:笨笨熊搬家打包篇
- 2014华为编程大赛题目:小明的筷子
- 腾讯2014春季实习生招聘 笔试题目 第一批次
- 2014华为编程大赛-解析9进制,11进制的字符串为10进制的数字输出
- 【微软2014实习生及秋令营技术类职位在线测试】题目1 : String reorder
- 2014阿里研发面试题目
- SeedCoder2014热身题目1 -- 解答
- 2014 中大校赛热身赛总结(题目来至:2011年珠海赛)
- 2014西安全国邀请赛——题目重现(感谢西工大+复旦)HDOJ4847 Wow! Such Doge!
- 2014工大校赛题目以及解
- 2014华为校招机试题目总结
- 微软2014编程之美初赛第一场——题目1 : 焦距
- 三个数比较大小——C语言经典题目
- Windows7下如何设置MyEclipse2014字体大小
- 华为面试题 题目:有两个数组a,b,大小都为n,数组元素的值任意,无序; 要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小
- 【2014华为校园招聘成都上机笔试题目】
- 2014华为校园招聘上机测试题目(华科提前批)
- 2014趋势科技校招9月23日南京笔试题目答案
- 2014 amazon 在线 面试题目 爬山问题:打印出从A点到B点的距离