题目1015:还是A+B

题目1015:还是A+B

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:7894

解决:4737

题目描述:
读入两个小于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 <iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;

int main()
{
    int a,b,c;
    while(scanf("%d%d%d",&a,&b,&c)!=EOF&&a&&b)
    {
        int n=1;
        for(int i=0; i<c; i++)
        {
            n*=10;
        }
        int a1=(a%n);
        int b1=b%n;
        if(a1==b1)
        {
            printf("-1\n");
        }
        else
        {
            cout<<a+b<<endl;
        }
    }
    return 0;
}

 

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;

int main()
{
    int a,b,c;
    while(scanf("%d%d%d",&a,&b,&c)!=EOF&&a&&b)
    {
     bool flag =true;
     int tmpa =a,tmpb=b;
     while(c--)
     {
         if(a%10!=b%10)
         {
            flag=false;
            break;
         }
         tmpa/=10;
         tmpb/=10;
     }
     if(flag==false)
     {
         cout<<a+b<<endl;
     }else
     {
         cout<<"-1"<<endl;
     }

    }
    return 0;
}

 

posted @ 2016-07-31 15:54  多思考&&多动手  阅读(312)  评论(0编辑  收藏  举报