洛谷P1009 [NOIP1998 普及组] 阶乘之和
题目链接:https://www.luogu.com.cn/problem/P1009
很水的一道题,无非是高精度乘法(高低乘)和高精度加法的结合体罢了,我的前一篇博客有高精度四件套,不会的可以去参考,思路都是一样的;
注意事项及代码如下:
#include<bits/stdc++.h> using namespace std; int a[110];//用来储存阶乘结果 110是假设位数,可能不够,不够再添即可 int b[110];//用来储存求和结果 void cheng(int *a,int x) { int jw=0;//两个进位 for(int i=1;i<=110;i++) { a[i]=a[i]*x+jw; jw=a[i]/10; a[i]=a[i]%10; } } void add(int *a,int *b) { int jw=0;//同上 for(int i=1;i<=110;i++) { b[i]=a[i]+b[i]+jw; jw=b[i]/10; b[i]=b[i]%10; } } int main() { int n; scanf("%d",&n); a[1]=1;//从1开始 for(int i=1;i<=n;i++)//每次循环阶乘,求和 { cheng(a,i); add(a,b); } bool flag=0;//判断前导,如果是0就不输出,所以一开始定义为0,假设前导都是0 for(int i=110;i>=1;i--) { if(b[i]!=0) flag=1;//bool逻辑判段 if(flag==1) printf("%d",b[i]);//如果满足条件,输出即可 } return 0; }
本文来自博客园,作者:江上舟摇,转载请注明原文链接:https://www.cnblogs.com/LQS-blog/p/15885123.html
分类:
数论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】