问题标题: 高精度求教!

0
0
已解决
沈峻宇
沈峻宇
资深天翼
资深天翼
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追加了内容

@刘欣然

 如果我阶段考试考得好,我会加悬赏哦


0
已采纳
张岳恒
张岳恒
资深光能
资深光能

建议你去买一本《信息学奥赛一本通》

里面应有尽有

话说你刚学到选择结构,那么着急干嘛

张岳恒在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追加了内容

我当然知道你没学到高精

建议先预习数组与字符串

之后还有函数,结构体

然后就是冒泡,插入,桶

其次是递推

然后终于到高精度

0
刘欣然
刘欣然
高级光能
高级光能

怎么老是禁言又解封[懵]

刘欣然在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的一些参考书籍:

第一阶段:

《信息学奥赛一本通》

《信息学分析讲义》

第二阶段:

《教你怎么不生气》

《佛经》

《老子》

《沉默的愤怒》

第三阶段:

《颈椎病康复指南》

《腰椎间盘突出日常护理》

《心脏病的预防与防治》

《高血压降压宝典》

《强迫症的自我恢复》

《精神病症状学》

第四阶段:

《活着》

0
邹昊轩
邹昊轩
资深光能
资深光能

我建议你看看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)); 

我要回答