高精模板
来源:互联网 发布:逆袭网络剧未删减dvd 编辑:程序博客网 时间:2024/06/07 10:11
#include<cstdio>#include<cstring>#include<iostream>#define K 10000using namespace std;char a[1100000];struct st{ long long s[5100],tot; void init(){ memset(s,0,sizeof s); tot=1; } void chu(int d){ for(int i=tot;i>=1;i--) s[i-1]+=1ll*s[i]%d*K,s[i]=s[i]/d; while(s[tot]==0) tot--; } void print(){ printf("%lld",s[tot]); for(int i=tot-1;i>=1;i--) printf("%04lld",s[i]); printf("\n"); }}c;int d;int k=1,n,m;int main(){ cin>>a+1>>d; n=strlen(a+1); c.init(); for(int i=n;i>=1;i--) { if(k==K) k=1,c.tot++; c.s[c.tot]+=k*(a[i]-'0'); k*=10; } c.chu(d); c.print();}
#include<cstdio>#include<cstring>#include<iostream>#define K 10000using namespace std;char a[1100000],b[1100000];struct st{ int s[11000],tot; void init(){ memset(s,0,sizeof s); tot=1; } st operator -(const st&b)const{ st ans;ans.init();ans.tot=max(tot,b.tot); for(int i=1;i<=ans.tot;i++) ans.s[i]=s[i]-b.s[i]; for(int i=1;i<=ans.tot;i++) if(ans.s[i]<0) ans.s[i]+=K,ans.s[i+1]-=1; while(ans.s[ans.tot]==0) ans.tot--; return ans; } void print(){ printf("%d",s[tot]); for(int i=tot-1;i>=1;i--) printf("%04d",s[i]); printf("\n"); }}c,d;int k=1,n,m;int main(){ cin>>a+1>>b+1; n=strlen(a+1),m=strlen(b+1); c.init(),d.init(); for(int i=n;i>=1;i--) { if(k==K) k=1,c.tot++; c.s[c.tot]+=k*(a[i]-'0'); k*=10; } k=1; for(int i=m;i>=1;i--) { if(k==K) k=1,d.tot++; d.s[d.tot]+=k*(b[i]-'0'); k*=10; } st ans; ans.init(); if(n>m) ans=c-d; else if(n<m) printf("-"),ans=d-c; else if(n==m){ for(int i=1;i<=max(c.tot,d.tot);i++) if(c.s[i]>d.s[i]) ans=c-d; else if(c.s[i]<d.s[i]) printf("-"),ans=d-c; } ans.print();}
#include<cstdio>#include<cstring>#include<iostream>#define K 10000using namespace std;char a[1100000],b[1100000];struct st{ int s[510],tot; void init(){ memset(s,0,sizeof s); tot=1; } st operator +(const st&b)const{ st ans;ans.init();ans.tot=max(tot,b.tot); for(int i=1;i<=ans.tot;i++) ans.s[i]=s[i]+b.s[i]; for(int i=1;i<=ans.tot;i++) ans.s[i+1]+=(ans.s[i])/K,ans.s[i]=(ans.s[i])%K; if(ans.s[ans.tot+1]) ans.tot++; return ans; } void print(){ printf("%d",s[tot]); for(int i=tot-1;i>=1;i--) printf("%04d",s[i]); printf("\n"); }}c,d;int k=1,n,m;int main(){ cin>>a+1>>b+1; n=strlen(a+1),m=strlen(b+1); c.init(),d.init(); for(int i=n;i>=1;i--) { if(k==K) k=1,c.tot++; c.s[c.tot]+=k*(a[i]-'0'); k*=10; } k=1; for(int i=m;i>=1;i--) { if(k==K) k=1,d.tot++; d.s[d.tot]+=k*(b[i]-'0'); k*=10; } st ans=c+d; ans.print();}
阅读全文
0 0
- 高精模板
- 高精模板
- 高精模板
- 高精模板
- 高精模板
- 高精模板
- c++高精模板(+ ,-,*,/)
- DAY-1高精模板
- 高精模板 重载运算符 (+,-,*)
- 计算高斯模板
- 计算高斯模板
- 【高精度模板】【高精加减乘没有除】
- 高斯过滤得到高斯模板
- 生成高斯模板(C++)
- 生成高斯模板(C++)
- java 产生高斯模板
- 压位高精模板(支持加法、高精乘低精、高精除低精)
- 【给将来学神的算法详解--高精】(1)(我的)高精度模板
- 技术分享连载(四十五)
- Linux 用户与组的概念
- SSH框架学习之Struts2(2):接收参数
- JQ控制input只能输入小数点后两位
- iOS socket连接打印机打印小票
- 高精模板
- hadoop中mr程序部署上系统时报”拒绝连接“的错误
- EasyUI中datagrid的样式
- Hello World Kotlin
- 项目:对于Servlet中 request.setAttribute()的使用
- spring cloud使用hystrix实现断路保护机制
- 中小型机器人开发平台apollo的场景应用
- ssm实现分页查询
- java开发中简单定时器的实现