Я пытался преобразовать некоторый код из C в C ++. Не могли бы вы, ребята, сообщить мне, где я ошибся, и дать мне несколько советов? Спасибо
По какой-то причине каждый раз, когда кто-то задает банальный вопрос, подобный этому, ему говорят «делай свое домашнее задание» и т. Д., Поэтому я просто укажу, что это не домашнее задание, как оно того стоит. еще раз спасибо
#include <iostream>
using namespace std;
int main()
{
int gcd_bin(int u, int v)
{
int t, k;
u = u < 0 ? -u : u; /* abs(u) */
v = v < 0 ? -v : v;
if (u < v)
{
t = u;
u = v;
v = t;
}
if (v == 0)
return u;
k = 1;
while (u & 1 == 0 && v & 1 == 0)
{ /* u, v - even */
u >>= 1; v >>= 1;
k <<= 1;
}
t = (u & 1) ? -v : u;
while (t)
{
while (t & 1 == 0)
t >>= 1;
if (t > 0)
u = t;
else
v = -t;
t = u - v;
}
return u * k;
}
}
У меня пока нет ответа, чтобы принять его, но проблема была решена людьми, указавшими на то, насколько глупым я был в комментариях, еще раз спасибо.
РЕДАКТИРОВАТЬ: Я опубликовал это, чтобы я мог принять его как ответ и закрыть вопрос, это не позволяет мне принять его еще на два дня.
Других решений пока нет …