Beta Round #67-A :Life Without Zeros
解法
sprintfとsscanfでがりがり書いた。もっと楽な方法もあるかも。
#include <cstdio> using namespace std; int A, B, C; char buf[20]; char str[20]; bool solve(){ int X, Y, Z; sprintf(buf, "%d", A); int p, q; for(p=0, q=0; buf[p]; p++)if(buf[p]!='0'){ str[q++] = buf[p]; } str[q] = '\0'; sscanf(str, "%d", &X); sprintf(buf, "%d", B); for(p=0, q=0; buf[p]; p++)if(buf[p]!='0'){ str[q++] = buf[p]; } str[q] = '\0'; sscanf(str, "%d", &Y); sprintf(buf, "%d", C); for(p=0, q=0; buf[p]; p++)if(buf[p]!='0'){ str[q++] = buf[p]; } str[q] = '\0'; sscanf(str, "%d", &Z); return X+Y==Z; } int main(){ scanf("%d%d",&A,&B); C = A+B; puts(solve()?"YES":"NO"); return 0; }