PAT Grado B 1021 estadísticas de dígitos 15 (puntos)

tema

Dado un entero de kk k bits N = dk? 1 1 0 k? 1 +? + D 1 1 0 1 + d 0 N = d_ {k-1} 10 ^ {k-1} + \ cdots + d_1 10 ^ . 1 + D_0 N = D ? K ? . 1 ? ? . 1 0 ? K ? . 1 ? ? + ? + D ? . 1 ? ? . 1 0 ? . 1 ? ? + D ? 0 ? ? ( 0 ≤ DI ≤. 9 0 \ Le D_i \ le 9 0 D ? I ? ? . 9 ,i = 0,?, K ?. 1 I = 0, \ cdots, K-. 1 I = 0 , ? , K ? . 1 ,DK ?. 1> 0 D_ {K . - 1}> 0 d ? k ? 1 ? ? > 0 ), escribir un programa para contar el número de cada dígito diferente surgir. Por ejemplo: DadoN = 1 0 0 3 1 1 N = 100311 N = 1 0 0 3 1 1 , hay 2 0, 3 1 y 1 3.

Formato de entrada:

Cada entrada contiene 1 caso de prueba, es decir, un entero positivo NN N con no más de 1000 dígitos .

Formato de salida:

De NN N aparece cada número de bits diferente al formato digital del bit de salida en una fila y en NN N el número . Requerido por la salida ascendente. D:M D M D

Muestra de entrada:

100311

Salida de muestra:

0:2
1:3
3:1

Código


#include<iostream>
using namespace std;
int main()
{
    
    
	string NUM = "0123456789", n;
	int cal[10] = {
    
     0 }, i, j;
	cin >> n;
	for (i = 0; n[i] != '\0'; i++)
		for (j = 0; j < 10; j++)
			if (n[i] == NUM[j])
				cal[j]++;
	for (i = 0; i < 10; i++)
		if (cal[i] != 0)
			cout << i << ":" << cal[i] << endl;
	return 0;
}

Enlace de detalles de la pregunta

Supongo que te gusta

Origin blog.csdn.net/qq_41985293/article/details/106317716
Recomendado
Clasificación