2006年浙江大学研究生复试机试真题-A加B

/*题目描述: 
读入两个小于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
*/
#include 
#include 
using namespace std;
bool check(int a,int b,int k)
{
	int i=k;
	while(a && b && i)
	{
		if(a%10==b%10)
		{
			i--;
			a=a/10;
			b=b/10;
			continue;
		}
		else
			break;
	}
	if(i<=0)
		return true;
	else if((a==0 && b%10==0)||(b==0 && a%10==0))
		return true;
	else
		return false;
}
int main()
{
	int a,b,k;
	while(~scanf("%d%d%d",&a,&b,&k)&&(a||b))
	{
		if(check(a,b,k))
			cout<<-1<


 

你可能感兴趣的:(ACM,Practices,and,Articals,测试)