C 语言魔术数

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

在本节中,我们将讨论C编程语言中的魔术数字及其各种示例。当一个数字的所有给定数字之和与其反向之和相乘,结果等于原始数字时,该数字就被称为魔术数字。

例如,假设我们有一个数字1729,我们需要验证它是否是魔术数字。首先,我们需要获取该数字所有数字之和,即19 (1 + 7 + 2 + 9 = 19)。将这个和反转得到91,然后将原始数字之和与反转后的和相乘,即19 * 91 = 1729。因此,它是一个魔术数字。

在C语言中查找魔术数字的步骤

步骤1:声明一个整数类型变量,并从用户输入一个数字存储到N中。

步骤2:获取原始数字的所有数字之和,并将其存储在另一个变量A中。

步骤3:反转变量A的数字,并存储到B中。

步骤4:之后,将变量A和B的值相乘并存储到C中。

步骤5:检查C是否等于N,如果是,则该数字是魔术数字。否则,该数字不是魔术数字。

示例1:检查数字是否是C语言中的魔术数字的程序

让我们创建一个程序,从用户获取一个数字,并验证输入的数字是否是C编程语言中的魔术数字。

当我们在C编译器中执行上述程序时,它会在控制台屏幕上产生以下输出。

Enter a number
1729
The sum of the digits = 19
The reverse of the digits = 91
The product of 19 * 91 = 1729 
1729 is a Magic Number.

在上述程序中,我们从用户那里获取1729,并将该数字赋给temp变量。之后,使用while循环逐个提取原始数字(n)的和到sum_of_digits中,并将结果赋给temp。再次使用循环反转数字之和并打印反转后的数字。最后将原始数字(N)与sum_of_digits和rev变量的乘积进行比较,如果结果相同则显示为魔术数字。

示例2:使用用户定义函数检查数字是否是魔术数字的程序

让我们创建一个示例,从用户获取一个数字,并验证输入的数字是否是C编程语言中的魔术数字。

当我们在C编译器中执行上述程序时,它会在您的计算机屏幕上产生以下输出。

Enter the number: 1729
The sum of the given number = 19
The reverse of the number = 91
The product of 19 and 91 = 1729
1729 is a Magic Number.

第二次执行

Enter the number: 5189
The sum of the given number = 23
The reverse of the number = 32
The product of 23 and 32 = 736
5189 is not a magic number.

在上述程序中,我们从用户那里获取5189,并创建两个用户定义的函数getSum()和getReverse()。其中getSum()函数用于计算给定数字的和,getReverse()函数用于反转getSum()函数的结果。如果getSum()和getReverse()函数的乘积等于num,则该数字是魔术数字。

方法2:在C语言中递归检查魔术数字的方法

如果一个数字的各位数字之和通过递归计算直到得到一个数字,并且这个数字等于1,那么这个数字就被称为魔术数字。否则,该数字不是魔术数字。

示例1:使用递归方法查找魔术数字的程序

让我们创建一个程序,从用户输入整数数据,并验证该数字是否是C编程语言中的魔术数字。

当我们在C编译器中执行上述程序时,它会在控制台屏幕上产生以下输出。

Enter the number: 1789
It is a Magic Number.

第二次执行

Enter the number: 55057
It is not a Magic Number.