编程题:
一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。
1
返回主页 [C语言 P1858] 编程题: 一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且0的阶 学习人数: 185 正确率: ??% 题目描述 已通过 编程题: 一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。 n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。 上一题下一题 加入错题本 个人笔记 请输入你的答案 3 个回答 (点击展开回答) 参考答案 方法一: #include 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; } 方法二使用递归: #include 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; }
#include<stdio.h> #define N int factorial(int a){ if(a==0) return 1; return a*factorial(a-1); } int main(){ int n; scanf("%d",&n); printf("%d",factorial(n)); }
#include <stdio.h> #include<stdlib.h> #include<string.h> double factorial(double n); int main(void) { double n; puts("请输入要求的阶乘数(n>=0)"); scanf("%lf", &n); if (n < 0) { puts("Error!(n>=0)"); } else { printf("%.0lf!=%.0lf\n", n,factorial(n)); }
return 0; }
double factorial(double n) {
if (n <= 1) { return 1; } else { return n*factorial(n-1);//规律f(n)=n*f(n-1) } }
安全证书过期
方法一:
#include ...
用户登录可进行刷题及查看答案
#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; }
方法二使用递归:
#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; }
登录后提交答案