资深天翼
a+b--->高精度a+b
a-b--->高精度a-b
please大佬多给提示!
笔记最好!
————————————————————————————————————————————————————
ps:你们有喜欢的人吗?他(她)抛弃过你吗?(八卦皮一下很开心)
回复正经内容回答
回复不正经内容评论!
勿举报!
沈峻宇在2020-04-07 16:14:46追加了内容
最好还有代码解析(高精度!)
沈峻宇在2020-04-07 16:17:53追加了内容
此帖并非水贴,主题是高精度笔记代码!
沈峻宇在2020-04-07 16:21:27追加了内容
我为什么被禁言了?
沈峻宇在2020-04-07 17:19:35追加了内容
@刘欣然
如果我阶段考试考得好,我会加悬赏哦
资深光能
建议你去买一本《信息学奥赛一本通》
里面应有尽有
话说你刚学到选择结构,那么着急干嘛
张岳恒在2020-04-07 16:21:36追加了内容
咦,我刚回答完,你就被禁言了
我见证了你的禁言【huaji】
张岳恒在2020-04-07 16:26:44追加了内容
真是滑天下之大稽
你被解封了
张岳恒在2020-04-07 16:29:57追加了内容
又被封了
滑稽
张岳恒在2020-04-07 16:36:06追加了内容
又解封了?
酷町侠被机惨了
张岳恒在2020-04-07 16:42:03追加了内容
好了,回归正题
高精度由于储存数目过大
所以用字符型输入
加法Code:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[101],b[101],c[101],la,lb,lc,i,x;//x是进位
int main(){
char al[101],bl[101];
gets(al); //输入加数与被加数
gets(bl);
la=strlen(al);
lb=strlen(bl);
for(i=0;i<=la-1;i++) a[la-i]=al[i]-48; //加数放入a数组
for(i=0;i<=lb-1;i++) b[lb-i]=bl[i]-48; //加数放入b数组
lc=1;
x=0;
while(lc<=la||lc<=lb){
c[lc]=a[lc]+b[lc]+x;//第i位相加并加上上次的进位
x=c[lc]/10; //向高位进位
c[lc]%=10; //存储第i位的值
lc++; //位置下标变量
}
c[lc]=x;
if(c[lc]==0){
lc--; //处理最高进位
}
for(i=lc;i>=1;i--){ //输出结果
cout<<c[i];
}
cout<<endl;
return 0;
}
望采纳
减法你可以买书看
张岳恒在2020-04-07 16:47:58追加了内容
我当然知道你没学到高精
建议先预习数组与字符串
之后还有函数,结构体
然后就是冒泡,插入,桶
其次是递推
然后终于到高精度
高级光能
怎么老是禁言又解封[懵]
刘欣然在2020-04-07 16:33:57追加了内容
有个人问过的
刘欣然在2020-04-07 16:35:08追加了内容
刘欣然在2020-04-07 17:03:00追加了内容
还有这种操作[友善[泰拳警告]]
刘欣然在2020-04-07 17:05:43追加了内容
关于学好OI的一些参考书籍:
第一阶段:
《信息学奥赛一本通》
《信息学分析讲义》
第二阶段:
《教你怎么不生气》
《佛经》
《老子》
《沉默的愤怒》
第三阶段:
《颈椎病康复指南》
《腰椎间盘突出日常护理》
《心脏病的预防与防治》
《高血压降压宝典》
《强迫症的自我恢复》
《精神病症状学》
第四阶段:
《活着》
资深光能
我建议你看看1096这道题,这题目是高精度。
我可以给你思路,
1. 把2个加数当成字符串处理
2. 首先定义三个数组 两个加数的位数
分别存到a[0] b[0] c[0]存和的位数
3. 把2个加数倒着存到数组 a b
4. Plus()函数
5. 遍历c数组(和),jw初始值为0,
每次加得的结果暂存到h,
c[i]=h%10;
jw=h/10;
6. 遍历结束之后,还要判断最后一次是否进位。
c[0]++;
c[c[0]]=1;
7. 输出的时候,倒着输出c数组,别忘了换行。
8. 数组清零 头文件 cstring。
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));