【发布时间】:2020-06-11 18:00:42
【问题描述】:
我只想知道,要找到 Krishnamurthy 数,我们必须先找到数字的阶乘,然后再将这些数字相加。 (例如,1!+4!+5!= 145)。
所以,下面是我的代码,我在那里应用了阶乘函数。但是输出并没有得到支持(145 不是 Kri ......)。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int digit,factorial = 1, temp, input, sum = 0;
printf("Enter a Number:\n");
scanf("%d",&input);
int Factorial(int digit){
factorial = factorial*digit;
return 0;
}
temp = input;
while(temp>0){
digit = temp%10;
temp = temp/10;
sum = sum + Factorial(digit);
}
if(sum==input){
printf("%d is a Krishnamurthy Number",input);
}
else{
printf("%d is not a Krishnamurthy Number",input);
}
}
我在逻辑、函数声明或定义上做错了吗?请帮忙。
【问题讨论】:
-
函数内部不能有函数。
-
@Eraklon 是的,我已经改变了,但仍然没有得到想要的输出
-
不确定你在用
Factorial函数做什么(例如 4! = 4*3*2*1 那么该函数如何产生 24?) - 但因为只有 10 位数的可能性为什么不创建一个包含 10 个可能的阶乘的数组 [10] 并按digit对其进行索引。 -
Krishnamurthy 数的集合是有限的吗?