首页 > ACM题库 > 九度OJ > 九度-1015-还是A+B[解题代码]
2013
12-12

九度-1015-还是A+B[解题代码]

题目来源:2006年浙江大学计算机及软件工程研究生机试真题

题目描述:
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)位数字相同,请直接输出-1。
输入:

测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。

输出:

对每个测试用例输出1行,即A+B的值或者是-1。

样例输入:
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
样例输出:
3
-1
-1
100

cpp 代码如下:
int a,b,k; main() { while(scanf("%d %d %d",&a,&b,&k)) { if(0 == a && 0 == b) break; if(a << (32 - k) == b << (32 - k)) printf("-1\n");  else printf("%d\n",a+b); }}

/**************************************************************
	Problem: 1015
	User: coder
	Language: C
	Result: Accepted
	Time:0 ms
	Memory:912 kb
****************************************************************/


  1. 你的理解应该是:即使主持人拿走一个箱子对结果没有影响。这样想,主持人拿走的箱子只是没有影响到你初始选择的那个箱子中有奖品的概率,但是改变了其余两个箱子的概率分布。由 1/3,1/3 变成了 0, 2/3