CS153/hw6/hw4programs/sp22_tests/intpalindrome.oat

59 lines
1 KiB
Text
Raw Normal View History

int divide (int a, int b) {
if (b == 0) {
print_string("Impossible!");
return 0;
}
var result = 0;
while (a >= b) {
a = a - b;
result = result + 1;
}
return result;
}
int remainder (int a, int b) {
if (b == 0) {
print_string("Impossible!");
return 0;
}
while (a >= b) {
a = a - b;
}
return a;
}
bool isPalindrome (int input) {
var testInput = input;
var reversed = 0;
var remainder = 0;
while (testInput != 0) {
remainder = remainder(testInput, 10);
reversed = reversed * 10 + remainder;
testInput = divide(testInput, 10);
}
if (input == reversed) {
return true;
}
return false;
}
int program (int argc, string[] argv) {
var palindrome = 123454321;
var nonPalindrome = 5589260144;
var bool1 = isPalindrome(palindrome);
var bool2 = isPalindrome(nonPalindrome);
if (bool1 & !bool2) {
print_string("Correct!");
}
return 0;
}