Xizor
07-03-2011, 21:12
Salve a tutti. Non riesco a venirne fuori da un problema non troppo difficile penso. Dato un numero senza segno n, dovrei ritornare il numero di coppie di numeri che non sono ordinati (in ordine crescente)
Es:
12 -> 0
325 -> 1
2315 -> 2
ecc.
Questo è quello che ho provato a fare.
int inversioni(unsigned int n) {
int succ;
int temp;
int i=0;
int a=0;
if (n<=9) return 0;
else {
temp = n % 10;
n = n / 10;
succ = n % 10;
do {
if(succ>=temp){
i++;
n = n / 10;
}
else n = n / 10;
temp=succ;
succ = n % 10;
} while(n > 0);
}
return i;
}
Funziona solo per numeri bassi e non riesco a capire come poterlo far funzionare con tutte le cifre. Grazie!
Es:
12 -> 0
325 -> 1
2315 -> 2
ecc.
Questo è quello che ho provato a fare.
int inversioni(unsigned int n) {
int succ;
int temp;
int i=0;
int a=0;
if (n<=9) return 0;
else {
temp = n % 10;
n = n / 10;
succ = n % 10;
do {
if(succ>=temp){
i++;
n = n / 10;
}
else n = n / 10;
temp=succ;
succ = n % 10;
} while(n > 0);
}
return i;
}
Funziona solo per numeri bassi e non riesco a capire come poterlo far funzionare con tutte le cifre. Grazie!