Witam!
Rozwiązywałem zadanie przedszkolanka ze SPOJ. Chciałbym się zapytać, dlaczego ten kod działa:
#include <cstdio>
int a,b,t;
using namespace std;
int nww(int a, int b)
{
int c = a;
while(c%b != 0)
{
c = c+a;
}
return c;
}
int main()
{
scanf("%d", &t);
for(int i = 0; i < t; i++)
{
scanf("%d %d", &a, &b);
printf("%d\n", nww(a,b));
}
return 0;
}
a ten nie:
#include <cstdio>
int a,b,t;
using namespace std;
int nww(int a, int b)
{
while(a%b != 0)
{
a = a+a;
}
return a;
}
int main()
{
scanf("%d", &t);
for(int i = 0; i < t; i++)
{
scanf("%d %d", &a, &b);
printf("%d\n", nww(a,b));
}
return 0;
}
Kiedy jako parametry podaję 12 i 15 zwraca 0, mimo, że powinien zwrócić 60, tak, jak ten wyżej.
Pozdrawiam