#include stdio.h
創(chuàng)新互聯(lián)專注于肥鄉(xiāng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供肥鄉(xiāng)營銷型網(wǎng)站建設(shè),肥鄉(xiāng)網(wǎng)站制作、肥鄉(xiāng)網(wǎng)頁設(shè)計、肥鄉(xiāng)網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造肥鄉(xiāng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供肥鄉(xiāng)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
void main()
{
void choose(int a,int b);
int a,b,c,d;
printf("請輸入兩個整數(shù),以0,0結(jié)束\n");
scanf("%d,%d",a,b);
scanf("%d,%d",c,d);
if(c==0d==0)
choose(a,b);
}
void choose(int a,int b)
{
if(ba)
{
printf("error!");
}
else
{
int fenmu=b,fenzi=a;
for(int i=a-1;ia-b;i--)
fenzi*=i;
for(int j=b-1;j1;j--)
fenmu*=j;
int temp;
temp=fenzi/fenmu;
printf("%d",temp);
}
}
#includestdio.h
int?fun(int?n)
{?int?i=1;
for(i=1;i=n;i++)
n=n*i;
return?n;
}????
void?main()????
{
int?i=5,j=8,k=3;
printf("\nThis?is(5!+8!)/3!=?%d?",(fun(i)+fun(j))/fun(3));??
}??//望采納
有兩個問題,一個是fact()函數(shù)里的p應(yīng)該定義成double類型,第二個是printf()不應(yīng)該用%d輸出double類型的值,應(yīng)該用%.0f或者%.0lf
順便說一句,這個問題只要定義fact()一個函數(shù)就夠了,輸出的時候用
printf("result = %.0f\n",fact(n)/(fact(m)*fact(n-m)));
另外兩個函數(shù)刪掉就可以了。
實現(xiàn)的算法很多, 下面給出一個不需要遞歸的算法; 需要設(shè)計兩個函數(shù)。
unsigned long factorial (unsigned long n);
long long perm(unsigned long m, unsigned long n);
unsigned long factorial (unsigned long n)
{
unsigned long value = (n == 0) ? 1 : n;
while( n = 2 )
value *= --n;
return value;
}
long long perm(unsigned long m, unsigned long n)
{
if (m n)
return -1;
else
return (unsigned long) (factorial(n)/factorial(n-m));
}
只為了mn就要返回-1, 有點浪費啊~~~
注意求值范圍, 如果需要可以int64擴(kuò)展。。。