PAT Test de pinceau A Record-1001 Format A + B (20 points)

Calculez a + b et sortez la somme au format standard - c'est-à-dire que les chiffres doivent être séparés en groupes de trois par des virgules (sauf s'il y a moins de quatre chiffres).

Spécification d'entrée:

Chaque fichier d'entrée contient un cas de test. Chaque cas contient une paire d'entiers a et b où −10 6 ≤a, b≤10 6 . Les nombres sont séparés par un espace.

Spécifications de sortie:

Pour chaque scénario de test, vous devez sortir la somme de a et b sur une seule ligne. La somme doit être écrite au format standard.

Exemple d'entrée:

-1000000 9

Exemple de sortie:

-999,991

Des idées

Cette question est très simple à faire avec un type de chaîne. Insérez simplement la chaîne de lecture du dernier troisième chiffre dans la virgule "," (ici la condition de fin de boucle doit être écrite i> 0, pas i> = 0, Sinon, lorsque le résultat est exactement six chiffres, le premier chiffre sera également une virgule (comme le cas donné dans l'exemple)), mais ici doit être divisé en cas positifs et négatifs, s'il s'agit d'un nombre négatif, prenez d'abord le signe négatif Sortez, puis opérez normalement selon la méthode positive précédente, et réinsérez enfin le signe négatif ~

Code

#include<cstdio> 
#include<string>
#include<iostream>
using namespace std;
int main(){
	int tmp1, tmp2;
	cin>>tmp1>>tmp2;
	int sum = tmp1+tmp2;
	string result = to_string(sum);
	if(result[0]=='-'){
		string temp = result.substr(1,result.length()-1);
		for(int i=temp.length()-3;i>0;i-=3) temp.insert(i,",");
		result = temp;
		result.insert(0,"-");
	}
	else{
		for(int i=result.length()-3;i>0;i-=3) result.insert(i,",");
	}
	cout<<result;
    return 0;
}
Publié 54 articles originaux · gagné 27 · vues 4974

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42257812/article/details/105575087
conseillé
Classement