Pequim seqüência de teste de máquina mais víbora ponto e fácil * flutuante, observe a maneira fácil de conclusão

A idéia básica:

Se conclusão, pode efectivamente reduzir o comprimento;

 

Pontos principais:

não;

 

#include <iostream> 
#include <vector> 
#include <string> 
#include <sstream> 
#include <algorithm> 
using namespace std; 

vector <string> carga (string s) { 
	int index; 
	corda b; 
	vector <string> vec; 
	ss stringstream (s); 
	enquanto (getline (ss, b,) '') { 
		vec.push_back (b); 
	} 
	Retornar vec; 
} 

Cadeia suplemento (cadeia a, cadeia b, int & ca) { 
	int max = -1; 
	corda rn = ""; 
	if (a.size ()> b.size ()) { 
		max = b.size (); 
		rn = a.substr (máx, a.size () - max); 
	} 
	Else if (a.size () <b.size ()) { 
		max = a.size ();
		max = a.size (); 
	} 
	Int transportar = 0; 
	cordas res = ""; 
	para (int i = max - 1; i> = 0; i--) { 
		int temp = (a [i] - '0') + (b [i] - '0') + transporte; 
		res = CHAR ( '0' + temp% 10) + res; 
		carregue = temp / 10; 
	} 
	Ca = de transporte; 
	res + = rn; 
	while (! res.size () = 0 && res [res.size () - 1] == '0') 
		res.pop_back (); 
	voltar res; 
} 

Add_in cadeia (cadeia a, cadeia b, int cn) { 
	reversa (a.begin (), a.end ()); 
	(b.begin (), b.end ()) inverter; 
	int transportar = CN; 
	cordas res = ""; 
	para (int i = 0; i <a.size () && i <b.size (); i ++) { 
		res = res + char ( '0' + Temp% 10); 
		carregue = temp / 10;
	} 
	If (res.size () <a.size ()) { 
		para (int i = res.size (); i <a.size (); i ++) { 
			if (reporte == 0) 
				res + = uma [ Eu]; 
			else { 
				int temp = (a [i] - '0') + transporte; 
				res + = char ( '0' + temp% 10); 
				carregue = temp / 10; 
			} 
		} 
		If (carry = 0!) 
			Res + = '1'; 
	} 
	Else if (res.size () <b.size ()) { 
		para (int i = res.size (); i <b.size (); i ++) { 
			if (reporte == 0) 
				res + = b [Eu]; 
			else { 
				int temp = (b [i] - '0') + transporte; 
				res + = char ( '0' + temp% 10); 
				carregue = temp / 10;
		if (carry = 0!)
	} 
	Else { 
		if (carry = 0!) 
			Res + = '1'; 
	} 
	Reversa (res.begin (), res.end ()); 
	voltar res; 
} 

Int main () { 
	string de S1, S2; 
	while (cin >> s1 >> s2) { 
		vector <string> SS1 = carga (S1); 
		vector <string> SS2 = carga (s2); 
		int transportar = 0; 
		res de cadeia = suplemento (SS1 [1], SS2 [1], de transporte); 
		cadeia res_in = add_in (SS1 [0], SS2 [0], de transporte); 
		cout << res_in << "" << res << endl; 
	} 
}

  

Acho que você gosta

Origin www.cnblogs.com/songlinxuan/p/12460027.html
Recomendado
Clasificación