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;
}