View Full Version : [C++]Come verificare se il risultato di una operazione ha resto o no
Mattyfog
17-09-2008, 17:04
Ciao,
come da titolo volevo sapere (non mi ricordo più come si fa!!! :muro: ) a verificare se un una operazione produce un risultato intero o no.
grazie ciao
Vincenzo1968
17-09-2008, 17:14
Ciao Mattyfog,
puoi utilizzare l'operatore modulo % del C/C++ che restituisce il resto.
banryu79
17-09-2008, 17:14
Intendi dire che vuoi sapere se una divisione ha resto?
Puoi usare l'operatore binario modulo: %, restituisce il resto intero della divisione tra due numeri.
esempio:
int a = 10;
int b = 4;
// 10 modulo 4 da come risultato: resto = 2
int resto = 10 % 4;
...
// se il risultato del modulo tra due numeri è zero allora non c'è resto,
// il che significa che il secondo operando è un divisore del primo
if (a%b == 0)
{
// ... b è un divisiore di a e non c'è resto nella divisione
}
else
{
// ... b non è un divisiore di a, la divisione da un resto
}
Ciao :)
se lavori solo con gli interi il risultato a causa del cast implicito sarà sempre un intero,
int x = 5/2;
x = 2 viene eliminata la parte a destra della virgola
scusami ma se fai
float a = 10;
float b = 4;
float y = a/b;
cout << a%b << endl; ---> errore '%': l'operando sinistro ha il tipo 'float'. Non valido.
quindi penso sia inutile fare un controllo su operazioni fra interi dato che il risultato sarà sempre intero
correggetemi se sbaglio
banryu79
17-09-2008, 17:26
quindi penso sia inutile fare un controllo su operazioni fra interi dato che il risultato sarà sempre intero
correggetemi se sbaglio
Se non ho capito male lui non vuole sapere il risultato della divisione fra due interi, ma vuole sapere se quella divisione ha resto oppure no, punto.
Mattyfog
17-09-2008, 17:27
banryu79 ha capito quello che intendevo grazie a tutti!!!!!!!
Mattyfog
17-09-2008, 17:48
so k dovrei aprire un'altra discussione ma...
c'è un modo semplice per misurare il tempo di esecuzione di un algoritmo?
||ElChE||88
17-09-2008, 17:56
so k dovrei aprire un'altra discussione ma...
c'è un modo semplice per misurare il tempo di esecuzione di un algoritmo?
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
clock_t start, end;
start = clock();
algoritmo();
end = clock();
cout << (double)(end - start) / CLOCKS_PER_SEC << " seconds" << endl;
return 0;
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.