Problema 1171 difícil de creer, pero cierto! .
El significado de los problemas
Digital lee de derecha a izquierda, se determina si la ecuación correcta
pensamiento
- De str1 + str2 = ans:
convertidos respectivamente en la cadena de caracteres correspondiente se lee de derecha a izquierda cuando la x1 número, x2, xa
cadena de la travesía hacia adelante, al final de la omitir todos 0, hasta la primera aparición un número entero positivo , el restante en digitales - Cálculo de la ecuación es establecido, la salida
notas
scanf("%[^\n]%*c", str)
%[^\n]
Encuentro \ n al final, no \ n lee cadena
%*c
absorben un personaje, un personaje que se lee y luego abandonó de nuevo y entonces, es igual agetchar()
código
#include<cstdio>
#include<string.h>
using namespace std;
char str1[10], str2[10], ans[10];
int str_to_rint(char str[]){
int len = strlen(str);
int i = len-1;
int x = 0;
while(str[i]=='0')
i--;
while(i>=0)
x = x*10 + str[i--]-'0';
return x;
}
int main(){
int x1, x2, x_a;
while(1){
scanf("%[^+]%*c", str1);
scanf("%[^=]%*c", str2);
scanf("%[^\n]%*c", ans);
x1 = str_to_rint(str1);
x2 = str_to_rint(str2);
x_a = str_to_rint(ans);
if(x1+x2==x_a)
printf("True\n");
else
printf("False\n");
if(x1==0 && x2==0 && x_a==0)
break;
}
return 0;
}