我正试图找到nCr值。没有错误,但我得到1作为所有输入的答案。请帮我找到解决方案。
#include <stdio.h>
int fact(int num)
{
int f=1,i;
for(i=1;i<=num;i++)
{
f=f*1;
}
return f;
}
int main(void)
{
int n,r,ncr=0;
printf("\n enter n and r values");
scanf("%d%d",&n,&r);
ncr=(fact(n) / (fact(r) * fact(n-r)));
printf("\n ncr for %d and %d is %d",n,r,ncr);
return 0;
}
答案 0 :(得分:3)
它不应该是f = f * 1,而是f = f * i
答案 1 :(得分:2)
您的阶乘代码不正确。
您设置f = 1
,然后执行f = f * 1
一次。然后返回仍为f
的{{1}}。我认为你的意思是1
对吧?
f = f*i
答案 2 :(得分:0)
计算阶乘的方法需要修正。应该是:
int fact(int num)
{
int f=1,i;
for(i=1;i<=num;i++)
{
f=f*i;
}
return f;
}
此外,如果r> 1,则不定义nCr。 ñ。您应该在scanf调用后添加此检查。
像:
if (r > n) printf("r cannot be greater than n.")
。
更加标准的计算因子形式是使用递归的形式。
int fact(int num)
{
if (num == 1 || num == 0)
return 1;
else
return (num * fact(num - 1));
}
答案 3 :(得分:0)
更好更快的方法是像这样计算nCr
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Can Change Images</h1>
<img id="myImage" onclick="changeImage()" src="img/0.jpg" width="180" height="180">
<table>
<tr>
<td > <a href="#" id="1" onclick="changeImage()"> Image1</a></td>
</tr>
<tr>
<td> <a href="#" id="2" onclick="changeImage()"> Image2</a></td>
</tr>
<tr>
<td> <a href="#" id="3" onclick="changeImage()"> Image3</a></td>
</tr>
</table>
please improve this code. If we click on image 2 link . image link 2 no work.i also use more then 2 images in this code.
Thanks advance.
</body>
</html>