Add all the assignment code.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
parent
58c6b1f81c
commit
cfe502c598
1277 changed files with 48709 additions and 1 deletions
26
hw5/oatprograms/binary_gcd.oat
Normal file
26
hw5/oatprograms/binary_gcd.oat
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
int binary_gcd (int x, int y) {
|
||||
if (x == y) { return x; }
|
||||
if (x == 0) { return y; }
|
||||
if (y == 0) { return x; }
|
||||
if ((~x [&] 1) == 1) {
|
||||
if ((y [&] 1) == 1) {
|
||||
return binary_gcd(x >> 1, y);
|
||||
}
|
||||
else {
|
||||
return binary_gcd(x >> 1, y >> 1) << 1;
|
||||
}
|
||||
}
|
||||
if ((~y [&] 1) == 1) {
|
||||
return binary_gcd(x, y >> 1);
|
||||
}
|
||||
if (x > y) {
|
||||
return binary_gcd((x - y) >> 1, y);
|
||||
}
|
||||
return binary_gcd((y - x) >> 1, x);
|
||||
}
|
||||
|
||||
int program (int argc, string[] argv) {
|
||||
var x = 21;
|
||||
var y = 15;
|
||||
return binary_gcd(x, y);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue