每日一九度之 题目1076:N的阶乘
时间限制:3 秒
内存限制:128 兆
特殊判题:否
提交:7601
解决:2749
- 题目描述:
-
输入一个正整数N,输出N的阶乘。
- 输入:
-
正整数N(0<=N<=1000)
- 输出:
-
输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
- 样例输入:
-
4 5 15
- 样例输出:
-
24 120 1307674368000
大数的乘法。
//Asimple #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector> #include <cctype> #include <cstdlib> #include <stack> #include <cmath> #include <set> #include <map> #include <string> #include <queue> #include <limits.h> #define INF 0x7fffffff using namespace std; const int maxn = 3005; typedef long long ll; int n; ll a[maxn]; int main(){ while( ~scanf("%d",&n) ){ if( n == 0 ){ printf("1\n"); continue; } //进位 int c = 0, len = 1; memset(a,0,sizeof(a)); a[0] = 1; for(int i=1; i<=n; i++){ c = 0; for(int j=0; j<len; j++){ a[j] = a[j] * i + c; if( a[j]>=10 ){ c = a[j] / 10; a[j] = a[j] % 10; } else c = 0; } while( c != 0 ){ int t = c % 10; a[len++] = t; c = c / 10; } } int i, j; for(i=maxn; i>=0; i--){ if( a[i] != 0 ){ break; } } for(j=i; j>=0; j--){ printf("%d",a[j]); } printf("\n"); } return 0; }
低调做人,高调做事。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~