Entrada:
Intro numero a rotar: 526
Salida:
El numero tiene 3 cifras
Las permutaciones obtenidas son:
652 265
A continuación se muestra el programa:
1 #include <iostream>
2 #include <cmath>
3 using namespace std;
4
5 int nr_cifras (int n);//Devuelve el numero de cifras
6 void extrae (int n_original, int& ultima_cifra,int& n_restante);
7 void pedir_numero(int&);
8
9 int main ()
10 {
11 int n = 0, ncifras, n_original =0, ultima_cifra = 0, n_restante = 0;
12
13 pedir_numero(n); //Solicitar numero
14 ncifras = nr_cifras(n);
15 n_original = n;
16
17 cout<<"El numero tiene "<<ncifras<<" cifras\n";
18 cout<<"Las permutaciones obtenidas son:"<<endl;
19
20 for(int i = 1; i < ncifras; i++)
21 {
22 extrae (n_original,ultima_cifra,n_restante);
23 cout<<ultima_cifra<<n_restante<<"\t";
24 n_original = ultima_cifra * pow(10,(ncifras-1)) + n_restante;
25 }
26 return 0;
27 }
28
29 void pedir_numero(int& n)
30 {
31 n = 2;
32 while(n<100)
33 {
34 cout<<"Intro numero a rotar: ";
35 cin>>n;
36 if(n <100)
37 cout<<"El numero no tiene al menos 3 cifras\n";
38 }
39 }
40
41 int nr_cifras(int n)
42 {
43 int contador = 1;
44 while(n/10 > 0)
45 {
46 n/=10; //n=n/10 Division entera
47 contador++;
48 }
49 return contador;
50 }
51
52 void extrae (int n_original, int& ultima_cifra,int& n_restante)
53 {
54 ultima_cifra = n_original%10;
55 n_restante = n_original/10;
56 }
No hay comentarios:
Publicar un comentario