您的位置:首页 > 其它

大数相乘--极简单的思路

2015-11-25 22:33 218 查看
大数相乘,面试常见的题型,如何计算两个打算相乘?
<pre style="font-family: 'Lucida Sans Typewriter'; font-size: 12pt; background-color: rgb(255, 255, 255);"><pre name="code" class="java">public class Test1 {public void multi(char[] a,char[]b){int alen = a.length;int blen = b.length;//用于存放最后计算出来的结果int[]s = new int[alen+blen];for (int i = 0; i < s.length; i++) {s[i] = 0;}//计算,(此时s中的某一个元素的值可能大于9)for (int i = 0; i < alen; i++) {for (int j = 0; j < blen; j++) {s[i+j+1] += (a[i]-'0')*(b[j]-'0');}}//进位处理for (int i = alen+blen-1; i >= 0; i--){if(s[i] >= 10){s[i-1] += s[i]/10;s[i] %= 10;}}print(s);}public void print(int [] s){int i = 0;while(s[i] == 0){i++;}for (; i < s.length; i++){System.out.print(s[i]);}}public static void main(String[] args) {String a = "36";String b = "36";char[] aa = a.toCharArray();char[] bb = b.toCharArray();Test1 test1 = new Test1();test1.multi(aa,bb);}}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: