PAT Nivel B-Número de amigos

Descripción del título
Si la suma de los dígitos de dos enteros es la misma, se denomina "número de amigos" y la suma pública es su "número de amigo".

Por ejemplo, 123 y 51 son el número de amigos, porque 1 + 2 + 3 = 5 + 1 = 6 y 6 es su número de identificación de amigo.

Dados algunos números enteros, se le pide que cuente cuántos números de identificación de amigo diferentes hay en ellos.

Formato de entrada La
primera línea de entrada da un número entero positivo N.
La siguiente línea da N números enteros positivos, separados por espacios.

El título garantiza que todos los números son inferiores a 10 4 .

Formato de salida
Primero, la primera línea muestra el número de números de identificación de amigo diferentes en un número dado; la
siguiente línea muestra estos números de identificación de amigo en orden creciente, con un espacio entre los números, y no debe haber espacios adicionales al final de la línea.

Muestra de entrada
8
123 899 51 998 27 33 36 12

Salida de muestra
4
3 6 9 26


Solución de problemas
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;	
}

Supongo que te gusta

Origin blog.csdn.net/weixin_46239370/article/details/113850824
Recomendado
Clasificación