所谓回文数(palindrome number)就是将该数字从右到左颠倒过来也和本身是一样的数字,如13931, 292等等。 有一些特定的数字很有趣,它们的平方就是一个回文数。 下面的这个非常简单的程序目的在于找出10000以内这样的数字。 /* * * print out all the numbers whose squre is palindrome, like 11, 11*11=121 * */ #include <stdlib.h> #include <stdio.h> #define MAX_NUMBER 10000 #define MAX_DIGITS 9 /* * */ int main(int argc, char** argv) { int square, count; int digits[10]; for(int i = 4; i < MAX_NUMBER; i++) { square = i * i; // check if the square is a palindrome count = 0; do { digits[count] = square % 10; square = (square - digits[count]) / 10; count++; } while(square != 0); int j; for(j=0; j < count /2; j++) { if (digits[j] != digits[count - j -1]) { break; } } if ( j == count/2) { // found one printf("%d ", i); } } printf("/n"); return (EXIT_SUCCESS); }