PAT Niveau B-Nombre d'amis

Description du titre
Si la somme des chiffres de deux entiers est la même, on l'appelle le "nombre d'amis", et la somme publique est leur "numéro d'amis".

Par exemple, 123 et 51 sont le nombre d'amis, car 1 + 2 + 3 = 5 + 1 = 6 et 6 est le numéro d'identification de leur ami.

Étant donné certains nombres entiers, il vous est demandé de compter le nombre de numéros d'identification d'amis différents qu'ils contiennent.

Format d'entrée La
première ligne d'entrée donne un entier positif N.
La ligne suivante donne N entiers positifs, séparés par des espaces.

Le titre garantit que tous les nombres sont inférieurs à 10 4 .

Format de sortie
Tout d'abord, la première ligne affiche le nombre de numéros d'identification d'amis différents dans un nombre donné; la
ligne suivante affiche ces numéros d'identification d'amis dans un ordre croissant, avec un espace entre les nombres, et il ne doit y avoir aucun espace supplémentaire à la fin de la ligne.

Échantillon d'entrée
8
123 899 51 998 27 33 36 12

Exemple de sortie
4
3 6 9 26


Problème solution
STL:

#include <iostream>
#include <set>
using namespace std;

int n, x;
set<int> S;

int main()
{
    
    
	cin >> n;
	
	while(n --)
	{
    
    
		cin >> x;
		int sum = 0;
		while(x)
		{
    
    
			sum += x % 10;
			x /= 10;
		}
		S.insert(sum);
	}	
	
	cout << S.size() << endl;
	
	bool flag = true;
	for (auto &x : S)
		if(flag) cout << x, flag = false;
		else cout << ' ' << x; 
		
	return 0;	
}

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46239370/article/details/113850824
conseillé
Classement