2017.4.16 阶乘之和 思考记录
2017-04-16 18:38
274 查看
普及组高精题、、
但要注意: 1、高精加模拟乘法要注意不要加两边自己,再开循环,不然会算成指数、、
2、高精乘单精注意每一位对好乘就行了
码:
#include<iostream>
#include<cstdio>
using namespace std;
int ans[99999],n,i,lin[99999],j;
void gjc(int a)
{
int jin=0,lin2,i;
for(i=1;i<=lin[0];i++)
{
lin2=jin;
jin=(lin[i]*a+jin)/10;
lin[i]=(lin[i]*a+lin2)%10;
}
//cout<<jin;
while(jin>0)
lin[++lin[0]]=jin%10,jin/=10;
}
void gjj()
{
int jin=0,lin2,i;
for(i=1;i<=max(lin[0],ans[0]);i++)
{
lin2=jin;
jin=(lin[i]+ans[i]+jin)/10;
ans[i]=(lin[i]+ans[i]+lin2)%10;
}
ans[0]=max(lin[0],ans[0]);
if(jin>0)
ans[++ans[0]]=jin;
}
int main()
{
scanf("%d",&n);
lin[0]=1;
lin[1]=1;
ans[0]=1;
ans[1]=0;
for(i=1;i<=n;i++)
{
gjc(i);
//cout<<lin[1];
gjj();
}
for(i=ans[0];i>=1;i--)
printf("%d",ans[i]);
}
但要注意: 1、高精加模拟乘法要注意不要加两边自己,再开循环,不然会算成指数、、
2、高精乘单精注意每一位对好乘就行了
码:
#include<iostream>
#include<cstdio>
using namespace std;
int ans[99999],n,i,lin[99999],j;
void gjc(int a)
{
int jin=0,lin2,i;
for(i=1;i<=lin[0];i++)
{
lin2=jin;
jin=(lin[i]*a+jin)/10;
lin[i]=(lin[i]*a+lin2)%10;
}
//cout<<jin;
while(jin>0)
lin[++lin[0]]=jin%10,jin/=10;
}
void gjj()
{
int jin=0,lin2,i;
for(i=1;i<=max(lin[0],ans[0]);i++)
{
lin2=jin;
jin=(lin[i]+ans[i]+jin)/10;
ans[i]=(lin[i]+ans[i]+lin2)%10;
}
ans[0]=max(lin[0],ans[0]);
if(jin>0)
ans[++ans[0]]=jin;
}
int main()
{
scanf("%d",&n);
lin[0]=1;
lin[1]=1;
ans[0]=1;
ans[1]=0;
for(i=1;i<=n;i++)
{
gjc(i);
//cout<<lin[1];
gjj();
}
for(i=ans[0];i>=1;i--)
printf("%d",ans[i]);
}
相关文章推荐
- 2017.4.16 级数求和 思考记录
- 2017.4.16 麦森数 思考记录
- 2017.4.16 幂次方 思考记录
- 2017.4.16 车站 思考记录
- 2017.9.21 紧急集合 思考记录
- 2017.9.30 物流运输 思考记录
- 2017.10.1 蚯蚓 思考记录
- 2017.7.30 玩具装箱 思考记录
- 2017.10.13 硬币游戏 思考记录
- 2017.10.16 水管局长&&水管局长数据加强版 思考记录
- 2017.10.24 上升序列 思考记录
- 思考mysql内核之初级系列14---innodb的旧式记录结构
- 2017.3.21 树网的核 思考记录
- 2017.10.25 打鼹鼠 思考记录
- 2017.3.31 洞穴勘测 思考记录
- Android 记录一次开发微信分享功能的吐槽与思考
- [生而为人-思考] 沈定刚教授座谈会感悟记录
- 2017.9.6 音量调节 思考记录
- 2017.9.10 土地购买 思考记录
- [生而为人-思考] Knowledge Cooking -4th 分享会记录