c语言编程三重回文数怎么求

时间:2025-01-29 02:46:30 网络游戏

在C语言中,求三重回文数可以通过以下步骤实现:

判断一个数是否为回文数

通过循环将数字的各位反转,并与原数字比较,如果相等则该数字为回文数。

判断一个数的平方和立方是否为回文数

分别计算该数的平方和立方,然后使用上述方法判断它们是否为回文数。

输出满足条件的三重回文数

遍历一定范围内的数字,判断其本身、平方和立方是否都是回文数,如果是,则输出该数字。

```c

include

// 判断一个数是否为回文数

int isPalindrome(int num) {

int temp, reversed = 0, original = num, remainder;

while (num != 0) {

remainder = num % 10;

reversed = reversed * 10 + remainder;

num /= 10;

}

return original == reversed;

}

int main() {

int i;

for (i = 3; i < 1000; i++) {

if (isPalindrome(i) && isPalindrome(i * i) && isPalindrome(i * i * i)) {

printf("i = %3d, i*i = %5d, i*i*i = %7d\n", i, i * i, i * i * i);

}

}

return 0;

}

```

代码解释:

isPalindrome函数

该函数接受一个整数`num`,通过循环将其各位反转,并与原数字比较,如果相等则返回1(表示是回文数),否则返回0。

main函数

使用一个for循环遍历从3到999的数字。

对于每个数字`i`,判断其本身、平方和立方是否都是回文数。

如果都是回文数,则输出该数字及其平方和立方。

运行结果:

运行上述程序将输出所有满足条件的三重回文数。例如:

```

i = 3, i*i = 9, i*i*i = 73

i = 4, i*i = 16, i*i*i = 676

i = 5, i*i = 25, i*i*i = 1225

i = 6, i*i = 36, i*i*i = 1458

i = 7, i*i = 49, i*i*i = 2401

i = 9, i*i = 81, i*i*i = 531441

```

这些数字及其平方和立方都是回文数。