阶乘实现函数:
double Factorial(short op1)
{
if(op1 < 0)
{
printf_s("Try to compute a negative's Factorail!\n");
return -1;
}
else if( op1 == 0 || op1 == 1)
return 1;
else
return op1 * Factorial(op1 - 1);
}
int Factorial(short op1, double* ret)
{
if (op1 < 0)
{
printf_s("Try to compute a negative's Factorail!\n");
return -1;
}
if (op1 == 0 ||op1 == 1)
*ret = 1;
else
{
*ret = 1;
for (;op1 > 1; op1--)
{
*ret *= op1 * (op1-1);
op1--;
}
}
return 0;
}
斐波纳契(Fibonacci)函数实现:
int Fibonacci(int op1, double* ret)
{
if (op1 < 0)
{
printf_s("Try to compute a negative's Factorail!\n");
return -1;
}
if (op1 == 0)
*ret = 0;
else if( op1 ==1 )
*ret = 1;
else
{
double temp1 = 0, temp2 = 1;
for (int i = 2; i <= op1; i++)
{
if (i == op1)
*ret = temp1 + temp2;
if(i%2 == 0)
temp1 = temp1 + temp2;
else
temp2 = temp1 + temp2;
}
}
return 0;
}
double Fibonacci(short op1)
{
if (op1 < 0)
{
printf_s("Try to compute a negative's Factorail!\n");
return -1;
}
if( op1 == 0)
return 0;
else if(op1 == 1)
return 1;
else
return Fibonacci(op1 - 1) + Fibonacci(op1 - 2);
}