C/C++の宿題を片付けます 40代目
■ このスレッドは過去ログ倉庫に格納されています
0030デフォルトの名無しさん
05/02/07 23:18:55#include <stdio.h>
#include <math.h>
#define N_MAX 100
#define SIGN(__n) ((((__n) % 2) == 0) ? 1 : -1)
/*
* SIGN(x) = (-1)^x
* = 1 // if x is 0(mod 2)
* = -1 // if x is 1(mod 2)
* pow(x, y) = x^y
* f(n, x) = SIGN(n - 1) * pow(x, 2 * n - 1) / (2 * n - 1)!
*/
double f(int n, double x)
{
int i;
double val;
/* val: the demoninator of f(n, x) */
val = SIGN(n - 1) * pow(x, 2 * n - 1);
/* f(n, x) = val / (2 * n - 1)! */
for (i = 1 ; i <= (2 * n - 1); ++i) {
val /= i;
}
return val;
}
■ このスレッドは過去ログ倉庫に格納されています