如何确定数字在C中是否强

在编程中, 强数是一个特殊数字, 其每个数字的阶乘之和等于原始数字。例如:

!1 + !4 + !5 = 145

不, 那个!不是编程的否定一元运算符, 这意味着数学中的阶乘数(在此处了解如何在C中了解数字的阶乘)。在本文中, 我们将向你介绍C语言中一个非常有用的代码段, 可让你确定数字是否为强。
实现对于新手来说, 确定数字是否强的代码逻辑可能有些棘手, 但是一旦解释, 这很容易做到。我们的确定数字强的代码如下:
#include< stdio.h> // Factorial function that returns the factorial of a given integer// For more information about factorials: https://ourcodeworld.com/articles/read/857/how-to-get-the-factorial-of-a-number-in-cint fact(int n){ int i, fac=1; for(i=1; i< =n; ++i){fac*=i; } return fac; }int main(){ int number, lastDigit, sum, count; sum = 0; printf("Provide the number to determine:"); scanf("%d", & number); count = number; while(count != 0){// Obtain the last digit of the numberlastDigit = count % 10; // Keep the count of the sum of the factorial of the last digitsum += fact(lastDigit); // Divide the count to know when the loop should end// e.g 145/10 = 14.5// e.g 14.5/10 = 1.45// e.g 1.45/10 = 0.145// This means the loop of 145, will iterate 3 times (because 0.145/10 = 0.014499999999999999).count = count / 10; }// If the sum is equal to the given number, it's strong ! if(sum == number){printf("The number is Strong"); }else{printf("The number is NOT strong"); } return 0; }

代码的工作方式如下:我们的程序将提示用户输入一个整数, 该整数将存储在number变量中。现在, 出于计算目的, 将数字的值分配给另一个我们称为count的变量。我们还定义了一个名为sum的变量, 它将包含给定数字的所有数字的阶乘之和, 该变量的初始值为0。
为了数学上找到数字的最后一位数字, 你可以通过取模运算符来执行此操作, 处理后的数字的其余部分将是最后一位数字, 我们将此值存储在lastDigit变量中。现在, 我们将创建一个循环, 该循环将做2件事, 直到count变量等于0为止:
  1. 找到最后一位的阶乘并将其加到总和中。
  2. 从我们不需要的号码中删除最后一位数字(更新计数值)
最后, 循环结束后, 你将能够比较数字是否强, 在代码开始时将sum变量与给定数字进行比较, 就是这样!
【如何确定数字在C中是否强】编码愉快!

    推荐阅读