Witam. Mam program napisany w C++ szukający NWD - największego wspólnego dzielnika dwóch liczb, ale mam problem z napisaniem tego samego w C sharp. Mógłbym prosić o pomoc?
#include <iostream>
using namespace std;
int main()
{
unsigned int a,b,k,r;
cin >> a >> b;
if(!a || !b)
cout << (a | b) << endl;
else
{
for(k = 0; !((a | b) & 1); k++)
{
a >>= 1;
b >>= 1;
}
do
{
if(!a)
{
a = b; break;
}
while(!(a & 1)) a >>= 1;
while(!(b & 1)) b >>= 1;
if(a < b)
{
r = (b - a) >> 1;
b = a;
a = r;
}
else a = (a - b) >> 1;
} while(b);
if(k) a <<= k;
cout << a << endl;
}
return 0;
}
a to próba napisania w c sharp
int a,b,k,r;
a = Convert.ToInt32(txt1.Text);
b = Convert.ToInt32(txt2.Text);
if (a == 0)
richTextBox1.Text = b.ToString();
else
if (b == 0)
{
richTextBox1.Text = a.ToString();
}
else
{
for (k = 0; ((a | b) & 1)==0; k++)
{
a >>= 1;
b >>= 1;
}
do
{
if (a==0)
{
a = b; break;
}
while ((a & 1)==0) a >>= 1;
while ((b & 1)==0) b >>= 1;
if (a < b)
{
r = (b - a) >> 1;
b = a;
a = r;
}
else a = (a - b) >> 1;
} while (b==0);
if (k>0) a <<= k;
richTextBox1.Text = a.ToString();
}