博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高精度压位加乘
阅读量:5824 次
发布时间:2019-06-18

本文共 3052 字,大约阅读时间需要 10 分钟。

#include
#include
#include
using namespace std;struct node{ int len; int num[30000]; node(){len=0;memset(num,0,sizeof(num));} void xchili(char *in) { int llen=strlen(in)-1; int x=0; len=(llen+1)/4-1; if((llen+1)%4) len++; int place=0; int time=1; for(int i=llen;i>=0;i--) { x=x+(in[i]-'0')*time; time*=10; if(time==10000) { num[place++]=x; x=0; time=1; } } if((llen+1)%4) num[len]=x; } node operator *(node &b) { node k; for(int i=0;i<=len;i++) for(int j=0;j<=b.len;j++) { k.num[i+j]+=num[i]*b.num[j]; k.num[i+j+1]+=k.num[i+j]/10000; k.num[i+j]%=10000; } k.len=len+b.len+1; while(k.num[k.len]==0&&k.len) k.len--; return k; } node operator +(node &b) { node re; int llen=max(len,b.len); for(int i=0;i<=llen;i++) { re.num[i]=num[i]+b.num[i]; re.num[i+1]+=re.num[i]/10000; re.num[i]%=10000; } re.len=llen; if(re.num[re.len+1]) re.len++; return re; }};char a[3000],b[3000];node work(char *in){}node ans1,ans2,out;int main() { //cin>>a>>b; /*scanf("%s",a); scanf("%s",b);*/ int n; scanf("%d",&n); int mode=2; //scnaf("%d",&mode); if(mode==1) { if(a[0]=='-'&&b[0]!='-') { cout<<"-"; //ans1=work(a+1); ans1.xchili(a+1); //ans2=work(b); ans2.xchili(b); } if(a[0]!='-'&&b[0]=='-') { cout<<"-"; //ans1=work(a); ans1.xchili(a); //ans2=work(b+1); ans2.xchili(b+1); } if(a[0]=='-'&&b[0]=='-') { //ans1=work(a+1); ans1.xchili(a+1); //ans2=work(b+1); ans1.xchili(b+1); } if(a[0]!='-'&&b[0]!='-') { //ans1=work(a); ans1.xchili(a); //ans2=work(b); ans2.xchili(b); } out=ans1*ans2; printf("%d",out.num[out.len]); for(int i=out.len-1;i>=0;i--) { /*if(out.num[i]==0&&i!=out.len) { cout<<"0000"; continue; } if(out.num[i]<10&&i!=out.len) { cout<<"000"<
=3) { for(int i=3;i<=n;i++) { c=e+f; e=f; f=c; } printf("%d",c.num[c.len]); for(int i=c.len-1;i>=0;i--) printf("%04d",c.num[i]); } if(n==2) printf("2"); if(n==1) printf("1"); if(n==0) printf("1"); } return 0;}

转载于:https://www.cnblogs.com/Lance1ot/p/8496677.html

你可能感兴趣的文章
Linux基础命令---rmdir
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
BigDecimal 舍入模式(Rounding mode)介绍
查看>>
开源 免费 java CMS - FreeCMS1.2-标签 infoSign
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
FreeMarker-Built-ins for strings
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
Android状态栏实现沉浸式模式
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
学生名单
查看>>