實現的算法很多, 下面給出一個不需要遞歸的算法; 需要設計兩個函數。
成都一家集口碑和實力的網站建設服務商,擁有專業的企業建站團隊和靠譜的建站技術,十余年企業及個人網站建設經驗 ,為成都數千家客戶提供網頁設計制作,網站開發,企業網站制作建設等服務,包括成都營銷型網站建設,高端網站設計,同時也為不同行業的客戶提供網站設計制作、成都做網站的服務,包括成都電商型網站制作建設,裝修行業網站制作建設,傳統機械行業網站建設,傳統農業行業網站制作建設。在成都做網站,選網站制作建設服務商就選成都創新互聯公司。
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擴展。。。
#include stdio.h
void main()
{
void choose(int a,int b);
int a,b,c,d;
printf("請輸入兩個整數,以0,0結束\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);
}
}
double?fact(long?num)
{
for?(long?i?=?1;?num??0;?num--)
{
i?*=?num;
}????
}
int?main()
{
long?m;
long?n;
long?C;
scanf("%ld?%ld",?m,?n);
C?=?fact(n)?/?((fact(m))?*?fact(n-m));
printf("%ld",C);
return?0;
}
網站題目:組合數的函數名c語言 求組合數c語言函數
文章路徑:http://m.newbst.com/article48/hjpsep.html
成都網站建設公司_創新互聯,為您提供手機網站建設、網頁設計公司、商城網站、網站制作、域名注冊、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯