【】 OFJ Problema 1171 difícil de creer, pero cierto!

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;
}
Publicado 28 artículos originales · ganado elogios 0 · Vistas 316

Supongo que te gusta

Origin blog.csdn.net/qq_44531167/article/details/105330966
Recomendado
Clasificación