P167PROD spoj PTIT – ROUND 7D – ABC

Nguồn đề bài: http://www.spoj.com/PTIT/problems/P167PROD/

1. Đề bài P167PROD spoj

Cho đẳng thức a + b = c, trong 3 số này có 1 số bị mờ đi một chữ số (được thay bằng dấu ?), hãy tìm chữ số đó.

Input

  • Dòng đầu chứa một số nguyên không âm a;
  • Dòng thứ hai chứa một số nguyên không âm b;
  • Dòng thứ ba chứa một số nguyên không âm c;

Cả ba số đều không vượt quá 106.  Một trong ba số sẽ bị thay một vị trí bằng dấu ?.

Output

  • Gồm một dòng chứa một số chữ số là kết quả tương ứng của bộ test trong dữ liệu vào.

Example

Input:

128

?2

200

Output:

7

2. Code c++ P167PROD spoj PTIT

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

int pos(char s[10])
{
    int i;
    for (i=0; i<strlen(s); i++)
    {
        if (s[i]=='?') return i;
    }
    return -1;
}

int strtonum(char s[10])
{
    int i,sum=0,mul=1;
    for (i=strlen(s)-1; i>=0; i--)
    {
        sum=sum+(s[i]-48)*mul;
        mul=mul*10;
    }
    return sum;
}

int main()
{
    char a[10],c[10],b[10];
    scanf("%s \n",&a);
    scanf("%s \n",&b);
    scanf("%s \n",&c);
    int pa=pos(a),pb=pos(b),pc=pos(c),na,nb,nc;
    if (pa==-1) na=strtonum(a);
    if (pb==-1) nb=strtonum(b);
    if (pc==-1) nc=strtonum(c);

    int tmp,i;
    if (pa!=-1)
    {
        for (i=0; i<=9; i++)
        {
            a[pa]=i+48;
            tmp=strtonum(a);
            if (tmp+nb==nc)
            {
                printf("%d",i);
                return 0;
            }
        }
    }
    if (pb!=-1)
    {
        for (i=0; i<=9; i++)
        {
            b[pb]=i+48;
            tmp=strtonum(b);
            if (na+tmp==nc)
            {
                printf("%d",i);
                return 0;
            }
        }
    }

    if (pc!=-1)
    {
        for (i=0; i<=9; i++)
        {
            c[pc]=i+48;
            tmp=strtonum(c);
            if (na+nb==tmp)
            {
                printf("%d",i);
                return 0;
            }
        }
    }
    return 0;
}

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *