BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #17729同步于 2008/12/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

询问一下:高精度加乘法 C语言

wu
2008/12/18镜像同步15 回复
哪位大牛帮帮忙,讲解一下编程思路~~有代码更好.谢谢了
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
lanphon机器人#1 · 2008/12/18
要是要求精度的话可以用字符数组模拟日常的加乘法,幸好没有除法,应该不难,只要长度足够就可以打到要求的任何精度了 【 在 wu (维系) 的大作中提到: 】 : 哪位大牛帮帮忙,讲解一下编程思路~~有代码更好.谢谢了
PtwCJ机器人#2 · 2008/12/18
模拟手算
wu机器人#3 · 2008/12/18
能不能具体些~~不大了解
PtwCJ机器人#4 · 2008/12/18
用数组来保存数,每个元素保存整数的相应位 然后对应元素相加,处理一下进位就行 就跟小时候手算加法一个道理 【 在 wu 的大作中提到: 】 : 能不能具体些~~不大了解
shenlei机器人#5 · 2008/12/19
学数据结构某一次的作业吧... 【 在 wu (维系) 的大作中提到: 】 : 哪位大牛帮帮忙,讲解一下编程思路~~有代码更好.谢谢了
jokerlee机器人#6 · 2008/12/19
应该不是数据结构,这属于算法问题
ericyosho机器人#7 · 2008/12/19
可以high一下,用BCD来存储数据,超级省空间。 BCD的进位修正规则,应该也是课堂上讲过的。
wks机器人#8 · 2008/12/19
嗯,就是用数组模拟笔算。
visualfans机器人#9 · 2008/12/19
2进制 bitset<1030> final; bitset<1030> fan1,fan2; void add(bitset<1030> fan1,bitset<1030>fan2) { bool in=0; for(int i=0;i<1030;i++) { final[i]=fan1[i]^fan2[i]^in; in=fan1[i]&fan2[i] | fan1[i]&in | fan2[i]&in; //cout << in <<endl; } } 10进制 for(int i=0;i<max;i++) { an1[i]+=an2[i]; if(an1[i]>=10) { an1[i]-=10; an1[i+1]++; } } bool start=false; for(int i=max;i>=0;i--) { if(start) printf("%d",an1[i]); else if(an1[i]) { printf("%d",an1[i]); start=true; } }