当前位置: 首页 > news >正文

洛谷 P1998 阶乘之和 C++代码

前言

今天我们来做洛谷上的一道题目。

网址:[NOIP1998 普及组] 阶乘之和 - 洛谷

西江月·夜行黄沙道中 【宋】 辛弃疾

明月别枝惊鹊,清风半夜鸣蝉。稻花香里说丰年,听取WA声一片。

七八个星天外,两三点雨山前。旧时茅店社林边,路转溪桥忽见。

注:WA表示Wrong Answer

Bi------------------------------------

正文

这题一看过去这不So Easy吗?求一个数的阶乘还不简单?于是便有了以下代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;long long ans=1;cin>>n; for(int i=n;i>=1;i--) ans*=i;cout<<ans<<endl;return 0;
}

于是便有了:

真的是:稻花香里说丰年,听取WA声一片。

请你仔细读一读题目,题目让求的是阶乘之和,不是阶乘!

读懂了题,那还是So Easy,于是便有了以下代码:

#include<bits/stdc++.h>
using namespace std;
long long f(int x)
{long long tmp=1;for(int j=x;j>=1;j--) tmp*=j;return tmp; 
}
int main()
{int n;long long ans=0;cin>>n; for(int i=n;i>=1;i--) ans+=f(i);cout<<ans<<endl;return 0;
}

结果……:

真的是:稻花香里说丰年,听取WA声一片。

再请你仔细读一读题目,数据范围是n<=50,你不溢出谁溢出?

于是便有了高精度的代码:

#include<bits/stdc++.h>
using namespace std;
int cal=100,bignuma[110]{0,1},bignumb[110]{0,1};
long long f(int x)
{long long tmp=1;for(int j=x;j>=1;j--) tmp*=j;return tmp; 
}
void opea()
{for (int j=1;j<=100;j++){if (bignuma[j]>9){bignuma[j+1]+=bignuma[j]/10;bignuma[j]%=10;//取个位 }}
}
void opeb()
{for (int j=1;j<=100;j++){bignumb[j]+=bignuma[j];if (bignumb[j]>9){bignumb[j+1]+=bignumb[j]/10;bignumb[j]=bignumb[j]%10;}}
}
int main()
{int n;long long ans=0;cin>>n; if(n<=15){for(int i=n;i>=1;i--) ans+=f(i);cout<<ans<<endl;} else {for(int i=2;i<=n;i++){for(int j=1;j<=100;j++)	bignuma[j]*=i;					opea(); opeb();}for (cal=100;bignuma[cal]==0&&cal>0;cal--);while (cal>0){cout<<bignumb[cal];cal--;}}return 0;
}

结果:

终于是:稻花香里说丰年,听取AC声一片。

结尾

这一题纯纯是看你细不细心,如果不细心的话,就会像我一样,连着被坑两次。

文章不易,喜欢的话就点个赞再走吧。

http://www.lryc.cn/news/251569.html

相关文章:

  • 洛谷 B2006 地球人口承载力估计 C++代码
  • 少走弯路:OpenCV、insightface 等多方案人脸推理和识别
  • github代码连接vercel 建立一个公用网站
  • 使用pandas将字符串格式数据转换为单独的行
  • 【Tkinter 入门教程】
  • 深入理解Java中继承的高级使用方案
  • nexus私服开启HTTPS
  • 融合CFPNet的EVC-Block改进YOLO的太阳能电池板缺陷检测系统
  • 传媒行业CRM:打造高效客户管理,提升品牌影响力
  • 基于深度学习的肺炎CT图像检测诊断系统
  • YOLOv8改进 | 2023 | SCConv空间和通道重构卷积(精细化检测,又轻量又提点)
  • Python 全栈体系【四阶】(一)
  • Git【成神路】
  • 文件操作详解
  • 模块 A:web理论测试
  • git rebase冲突说明(base\remote\local概念说明)
  • 函数式接口的妙用,让异步执行更简单
  • 读书笔记:《More Effective C++》
  • 手写VUE后台管理系统6 - 支持TS声明文件.d.ts
  • 第八天:信息打点-系统端口CDN负载均衡防火墙
  • 一款充电桩解决方案设计
  • Leetcode 2953. Count Complete Substrings
  • 【Python-第三方库-pywin32】随笔- Python通过`pywin32`获取窗口的属性
  • Flask使用线程异步执行耗时任务
  • zabbix监控nginx
  • 【CVE-2023-49103】ownCloud graphapi信息泄露漏洞(2023年11月发布)
  • 可视化数据库管理客户端:Adminer
  • Python----字典练习
  • CentOS 部署 WBO 在线协作白板
  • qt-C++笔记之QStringList