C(n,m)的算法=n! / (m!(n-m)!)
程式功能為輸入兩個數M及N,計算M取N的值,亦即n!/(m!(n - m)!) //n 永遠需大於 m
Will 發表在 痞客邦 留言(0) 人氣(9,640)
使用遞迴實作遞迴實作九九乘法表,
程式碼如下:
#include <stdio.h>
void nine(int i, int j);
int main(int argc, const char * argv[]) {
nine(1, 1);
return 0;
}
void nine(int i, int j)
{
if (i < 10)
{
if (j < 10)
{
printf("%d * %d = %2d ", i, j, i*j);
nine(i, j + 1);
}else{
printf("\n");
i++;
nine(i, 1);
}
}
}
Will 發表在 痞客邦 留言(0) 人氣(7,920)
使用遞迴實作n!(階乘加總),
程式碼如下:
#include <stdio.h>
int exeTimes(int n);
int factorial(int n);
int main(int argc, const char * argv[]) {
int n, tmp;
scanf("%d\n", &n);
tmp = exeTimes(n);
printf("%d", tmp);
return 0;
}
int exeTimes(int n)
{
if (n == 1)
{
return 1;
}else{
return factorial(n) + exeTimes(n - 1);
}
}
int factorial(int n)
{
if (n <= 1 )
{
return 1;
}else{
return n * factorial(n - 1);
}
}
Will 發表在 痞客邦 留言(0) 人氣(3,244)
使用遞迴實作1 + 2 + ... + n,
程式碼如下:
#include <stdio.h>
int addSum(int n);
int main(int argc, const char * argv[]) {
int n, tmp;
scanf("%d", &n);
tmp = addSum(n);
printf("%d\n", tmp);
return 0;
}
int addSum(int n)
{
if (n == 0)
{
return 0;
}else{
return n + addSum(n - 1);
}
}
Will 發表在 痞客邦 留言(0) 人氣(151)