I wrote a program in c++ which works, however it has trouble handling big big numbers since the standard library only handles numbers as big as unsigned long long. I was told perl handled big numbers better and so i rewrote the c++ code in perl. When I run the perl code nothing is printed. The number that is printed should be the next largest palindrome from the number that was entered.
use bigint; $testCases = <STDIN>; chomp($testCases); @arr; for($i = 0; $i<$testCases; $i++) { #store values in array $k = <STDIN>; chomp($k); @arr[$i] = $k; } #cycle through array and test whether number stored is a palindrome #palindrome printed must be greater than stored value #if stored number is not palindrome increment until smallest palidrome + greater thean k is found for($j = 0; $j<testCases; $j++) { $win = 0; $temp = $arr[j]; $temp++; while($win == 0) { if(isPalindrome($temp)) { printf ("%u \n", $temp); $win = 1; }else { $temp++; } } } sub isPalindrome($orig){ $reversed = 0, $n = $orig; while($n > 0) { $reversed = $reversed * 10 + n % 10; $n /= 10; } if($orig == $reversed){ return 1; }else { return 0; } }
In reply to Program Not Printing Help by Hrand
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |