永发信息网

3.两个数相乘,小数点后位数没有限制,请写一个高精度算法 与大数相乘原理一样,只是调整小数点位

答案:1  悬赏:50  手机版
解决时间 2021-07-26 10:08
3.两个数相乘,小数点后位数没有限制,请写一个高精度算法 与大数相乘原理一样,只是调整小数点位
输入 string a,string b;计算string c=a*b; 返回 c;
1.纪录小数点在a,b中的位置l1,l2,则需要小数点后移动位置数为l=length(a)+length(b)-l1-l2-2;
去掉a,b中的小数点,(a,b小数点后移,使a,b变为整数)
计算c=a*b; (要么用java的BigInterger搞,要么自己用C++写高精度数乘法,超过百万位,用FFT,我就不细说,这都预先写过就别做了)
输出c,(注意在输出倒数第l个数时,输出一个小数点。若是输出的数少于l个,就补0)
要求给出符合要求的程序
最佳答案

import java.util.*;
class AddBigNumber{

public static StringBuffer Mul(StringBuffer s1,StringBuffer s2){
StringBuffer sb=new StringBuffer();
for(int i=0;i=0;i--){
for(int j=s2.length()-1;j>=0;j--){
int m=(int)(s1.charAt(i)-'0')*(int)(s2.charAt(j)-'0');
int n=i+j+1;
int x=(int)(sb.charAt(n)-'0');
x=x+m;
char c=String.valueOf(x%10).charAt(0);
sb.setCharAt(n,c);
while(x>=10){
m=x/10;
n--;
x=(int)(sb.charAt(n)-'0');
x=x+m;
c=String.valueOf(x%10).charAt(0);
sb.setCharAt(n,c);
}
}
}
return sb;

}
public static void main(String[] args){

StringBuffer sb=new StringBuffer(1);
StringBuffer s;
for(int i=1;i


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DNF手机令牌我绑定好了在手机上怎么看不到动
莲花有几种颜色,分别是象征什么?
怎么我的笛子刚刚吹响 ,怎么又吹不响呢 ,怎
若cosa+2sina=-根号5,则tana=?
某天与同学发生**怎么办
三星c3110c可不可以听音乐时发短信啊
史家小学的收费标准?
医生救我!
求一部喜剧电影
现在最火爆的网络游戏是什么啊?
天津市甲流疫苗注射
美丽祝福微信表情包,微信里那些带表情的祝福
房子户口问题
墙纸的一半卡桌面去不掉了
为什么电脑屏幕上的字一闪闪的?
推荐资讯
现在QQ还可以自己+自己么?
洛阳的唯美句子,洛阳的美丽风景六百字作文
深湾为什么叫深湾??
这么设置虚拟机上网?XP 2003 系统
东方神起金在中新开的店的名字叫什么??地址
90后常用口语
为什么?在电脑下栽电影放不出来呢?
青少年优秀读物请推荐几部英美小说,类似《哈
请教网站制作问题页脚处有缝隙
为什么我的DNF打完账号和密码以后安全检测完
赞庐山瀑布诗句,赞美黄果树瀑布的句子
刘海娟 藏头诗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?