C程序检查强数

c程序检查强数

给定一个数字’n’,我们需要检查给定的数字是否是强数

强数是指其所有数字的阶乘之和等于数字’n’。阶乘是指将小于该数字的所有数字(包括该数字)相乘的结果,用!(感叹号)表示。例如:4!= 4x3x2x1 = 24。

因此,要确定一个数字是否是强数,我们需要提取数字的每一位,例如数字为145,则我们需要提取1、4和5,然后我们将计算每个数字的阶乘,即1!= 1,4!= 24,5!= 120。

现在我们将1 + 24 + 120相加,得到145,与给定的输入完全相同,因此我们可以说这个数字是强数。

示例

Input: n = 124Output: No it is not a strong numberExplanation: 1! + 2! + 4! = 27 which is not equal to n i.e, 124Input: n = 145Output: Yes it is a strong numberExplanation: 1! + 4! + 5! = 145

登录后复制

下面使用的方法如下来解决问题

我们将 −

从个位数开始取每个数字,并找到其阶乘。我们将这些数字的阶乘相加。将结果与原始数字进行比较,如果它们相等,则该数字是强数;否则该数字不是强数。

算法

STARTIn Function int factorial(int r)   Step1 -> Initialize int fact and set as 1   Step2-> Loop while r>1      Set fact as fact * r      Decremnet r by 1   End Loop   Step 3-> Return fact   End Function factorialIn Function int check(int n)   Step 1-> Initialize int temp, rem and result, set result as 0   Step 2-> Set temp as n   Step 3-> Loop while temp      Set rem as temp % 10      Set result as result + factorial(rem)      Set temp as temp/10   End loop   Step 4-> If result == n then,      Return 1   Step 5-> Else   Return 0   End function checkIn main(int argc, char const *argv[])   Step 1-> Initialise and set n as 145   Step 2->If check(n) is valid then,      Print "Yes it is a strong number”   Step 3-> Else      Print "no it is not a strong number”STOP

登录后复制

示例

 实时演示

#include int factorial(int r) {   int fact = 1;   while(r>1) {      fact = fact * r;      r--;   }   return fact;}int check(int n) {   int temp, rem, result = 0;   temp = n;   while(temp) {      rem = temp % 10;      result = result + factorial(rem);      temp = temp/10;   }   if (result == n)      return 1;   else      return 0;}int main(int argc, char const *argv[]) {   int n = 145;   if (check(n))      printf("Yes it is a strong number

");   else      printf("no it is not a strong number

");   return 0;}

登录后复制

如果运行上述代码,将生成以下输出 −

Yes it is a strong number

登录后复制

以上就是C程序检查强数的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2583259.html

(0)
上一篇 2025年3月6日 14:31:26
下一篇 2025年3月6日 14:31:34

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • C程序求第n个偶数

    给定一个数字N,我们需要找到第N个偶数。 偶数是能够被2整除且余数为零的数字。例如2、4、6、8、10等。 如果我们仔细观察偶数列表,我们也可以表示它们为 2*1=2, 2*2=4, 2*3=6, 2*4=8,…2*N。 因此,…

    2025年3月6日
    200
  • 反转链表的C程序

    在这个问题中,我们给出了一个链表。我们的任务是创建一个程序来反转链表。 该程序将反转给定的链表并返回反转后的链表。 链表是一个包含项目的链接序列。每个链接包含到另一个链接的连接。 示例 9 -> 32 -> 65 -> 1…

    2025年3月6日
    200
  • C++程序以给定值找到反正弦

    在三角学中,我们最常使用几个比率:正弦、余弦、正切和其他一些比率。从给定的角度,可以计算这些比率。但是,如果我们有比率值,我们还可以使用反三角函数计算角度。 在本文中,我们将讨论如何通过 C++ 中的反正弦(反正弦)方法从正弦值获取弧度角。…

    2025年3月6日
    200
  • 检查给定字符串是否是关键字的C程序?

    关键字是在C++库中预定义或保留的单词,具有固定的含义,并用于执行内部操作。C++语言支持超过64个关键字。 每个关键字都以小写字母形式存在,如auto、break、case、const、continue、int等。 C++语言中的32个关…

    2025年3月6日
    200
  • C++程序从用户获取输入

    在任何编程语言中编写程序时,接收输入是我们几乎在所有程序中要做的基本工作。有时我们直接从控制台获取输入,有时我们从文件中获取输入。从文件中获取输入有一定的好处,因为它不需要我们一遍又一遍地输入,有时我们可以将一些好的输入测试用例保存到文件中…

    2025年3月6日
    200
  • 十进制转二进制的C程序?

    将整数从十进制 (base-10) 转换为二进制 (base-2)。假设整数的大小为 32 位,需要将数字除以基数。计算机使用它来将整数值更改为计算机的字节。 Input:10Output:1010 登录后复制 说明 如果十进制数是10 1…

    2025年3月6日
    200
  • C程序以螺旋模式表示数字

    表示数字的螺旋图案如下所示 – 以螺旋模式打印数字的逻辑如下 – for(i=1;i”);} 登录后复制 程序 以下是表示螺旋形数字的C程序 – #includemain(){   int i,rows,…

    2025年3月6日
    200
  • 检查每个单词的字符是否可以重新排列以形成等差数列(AP)

    在本文中,我们将讨论如何检查给定字符串中每个单词的字符是否可以重新排列以形成等差数列(AP)。我们还将使用C++实现解决方案,并提供一个示例来说明代码的工作原理。 等差数列(AP) 等差数列(AP)是一组数字的序列,其中每个项都是通过将常数…

    2025年3月6日
    200
  • C程序:将文本中的一个单词替换为另一个给定的单词

    在这个程序中,我们给定了三个字符串 txt、oldword 和 newword。我们的任务是创建一个 C 程序,将文本中的一个单词替换为另一个给定的单词。 该程序将搜索文本中所有出现的 oldword,并将其替换为 newword。 让我们…

    2025年3月6日
    200
  • C程序以显示指向指针之间的关系

    在 C 编程语言中,指向指针的指针或双指针是一个保存另一个指针地址的变量。 声明 下面给出的是指向指针的指针的声明 – datatype ** pointer_name; 登录后复制 例如int **p; 这里,p是一个指向指针…

    2025年3月6日
    200

发表回复

登录后才能评论