C 语言判断是否为 Adam 数

2024 年 8 月 28 日 | 3 分钟阅读

亚当数是一种特殊的数字,它的平方是其反转数的平方的反转。换句话说,如果我们取一个数的平方和它的反转数的平方,这两个结果在数字顺序反转后应该相同。例如,12 是一个亚当数,因为它的平方是 144,而它的反转数(21)的平方是 441,这正是 144 的反转。现在,让我们看看如何使用 C 语言编程来检查给定数字是否为亚当数。我们将从用户那里获取输入数字,然后执行必要的操作来检查它是否为亚当数。

首先,我们需要编写一个函数来反转给定数字。我们可以使用取模运算符来提取数字的最后一位,然后将数字除以 10 以删除最后一位。我们可以重复这个过程,直到数字变为零,然后连接提取的数字以得到反转后的数字。以下是反转函数的代码:

接下来,我们需要编写一个函数来检查给定数字是否为亚当数。我们可以通过首先使用 math.h 库中的 pow() 函数和我们刚刚定义的 reverse() 函数来计算数字的平方及其反转的平方。然后,我们可以比较这两个结果,并检查它们在反转数字后是否相同。以下是亚当数函数的代码:

现在,我们可以使用 isAdamNumber() 函数来检查给定数字是否为亚当数。以下是完整的 C 语言程序:

在这个程序中,我们首先从用户那里获取输入数字,然后调用 isAdamNumber() 函数来检查它是否为亚当数。如果它是亚当数,我们打印一条消息表示它是,如果不是,我们打印一条消息表示它不是亚当数。

总之,亚当数是一个数字,它的平方是其反转数的平方的反转。我们可以使用我们刚刚讨论的 C 语言程序来检查给定数字是否为亚当数。

输出

12
Adam Number
5 
Not an Adam Number

说明

reverse() 函数接受一个整数作为输入并返回反转后的整数。它通过使用 while 循环,利用取模运算符 % 提取输入整数的最后一位,然后使用整数除法(除以 10)删除最后一位。提取的数字以相反的顺序连接起来,形成反转后的整数。

isAdamNumber() 函数接受一个整数作为输入,如果它是亚当数则返回 1,否则返回 0。该函数首先使用 math.h 库中的 pow() 函数和 reverse() 函数计算输入整数的平方及其反转的平方。然后,它再次使用 reverse() 函数计算反转的平方的反转。最后,它比较输入整数的平方与反转的平方的反转,如果它们相等则返回 1,否则返回 0。