Pow*_*fet 2 c operators factorial
如何获得一个整数的值x,表示为x!,它是数字1到x的乘积.
例: 5! 1x2x3x4x5 = 120.
int a , b = 1, c = 1, d = 1;
printf("geheel getal x = ");
scanf("%d", &a);
printf("%d! = ", a);
for(b = 1; b <= a; b++)
{
printf("%d x ", c);
c++;
d = d*a;
}
printf(" = %d", d);
Run Code Online (Sandbox Code Playgroud)
你可以简单地做:
for(b = 1; b <= a; b++) {
d *= b;
}
// d now has a!
Run Code Online (Sandbox Code Playgroud)
这是大小和速度的最佳实现:
int factorial(int x)
{
static const int f[13] = { 1, 1, 2, 6, 24, 120, /* ... */ };
if ((unsigned)x < (sizeof f/sizeof f[0])) return f[x];
else return INT_MAX+1; /* or your favorite undefined behavior */
}
Run Code Online (Sandbox Code Playgroud)
提示:x!(x阶乘)不适合用int表示除了非常非常小的值x.
| 归档时间: |
|
| 查看次数: |
2902 次 |
| 最近记录: |