赞
踩
问题:一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且 0 的阶乘为 1。自然数 n 的阶乘写作 n!。
n!=1×2×3×…×n。阶乘亦可以递归方式定义:0!=1,1!=1,n!=(n-1)!×n。
代码1:
#include <stdio.h> int main() { int n, i; unsigned long long factorial = 1; printf("输入一个整数: "); scanf("%d",&n); // 如果输入是负数,显示错误 if (n < 0) printf("Error! 负数没有阶乘jiechen"); else { for(i=1; i<=n; ++i) { factorial *= i; // factorial = factorial*i; } printf("%d! = %llu", n, factorial); } return 0; }
运行结果:
输入一个整数: 10
10! = 3628800
代码2:递归
#include <stdio.h> long int multiplyNumbers(int n); int main() { int n; printf("输入一个整数: "); scanf("%d", &n); printf("%d! = %ld", n, multiplyNumbers(n)); return 0; } long int multiplyNumbers(int n) { if (n > 1) return n*multiplyNumbers(n-1); else return 1; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。