`

【笔试】两个大数相乘

阅读更多
package com.baidu.ecom;


//import java.math.BigInteger;
import java.util.Scanner;
public class BigMultiTest {

public static void main(String[] args) 
	{
		Scanner reader=new Scanner(System.in);
		String numStr1=reader.next();
		String numStr2=reader.next();
	
		int[] intNum1=changetoArray(numStr1);
		int[] intNum2=changetoArray(numStr2);
//		BigInteger bi = new BigInteger();
		multiply(intNum1,intNum2);
	}

public static int[] changetoArray(String numStr)
	{
		int length=numStr.length();
		int[] intNum=new int[length];
		for(int i=0;i<length;i++)
		intNum[length-i-1]=Integer.parseInt(String.valueOf((numStr.charAt(i))));
		return intNum;
	}

public static int[] multiply(int[] num1,int[] num2)
	{
		int length1=num1.length;
		int length2=num2.length;
		int[] result=new int[length1+length2];
		for(int i=0;i<length1;i++)//进行相乘运算
			for(int j=0;j<length2;j++)
			{
				int temp = result[i + j] + num1[i] * num2[j];
				result[i + j] = temp % 10;
				result[i + j + 1] += temp / 10;
				if (result[i + j + 1] > 10) {
					result[i + j + 1] %= 10;
					result[i + j + 2]++;
				}
			}	
		StringBuffer sb=new StringBuffer();
		boolean flag = false;//结合result[i]==0来清除前面多与的0
		for(int i=result.length-1;i>=0;i--)//通过大数数组来构造字符串
		{
			if(result[i]==0&&flag==false)
					continue;
			flag = true;//只要出现了以一个不为0的数字,就置flag为true。这句话放的位置不好,可以改进下
			sb.append(result[i]);
		}
		System.out.println(sb.toString());//输出大数字符串
		return result;
	}

}



 结果:

 

123456789
987654321
121932631112635269

123456
654321
8779853376
45600
5689056
259420953600

分享到:
评论

相关推荐

    C++实现的大数相乘算法示例

    本文实例讲述了C++实现的大数相乘算法。分享给大家供大家参考,具体如下: 昨晚校招笔试,虐的没脸睡觉,能力太渣了,但我还在码农的坑里前行,希望早日跳坑,解决衣食住行之忧。 大数相乘,是指那些相乘结果或是...

    百度笔试题(矩阵相乘)

    刚刚做完百度的笔试题,真心觉得不难,但由于时间不够所以没能全部写完,表示遗憾,笔试的最后一道我已经忘了原题,大概的意思是先将一个矩阵转置成另一个矩阵,然后两个矩阵相乘,最后返回二维数组,其实很简单。

    基于MFC的任意位数两数相乘

    中兴软创C++笔试题的一道编程大题,要求能计算出超过计算机存储位数的数相乘的结果 本人自己写了一份,写的很乱 代码效率不高,只不过功能完全实现了

    IT笔试面试--大数乘法的详细代码及注释,已经调试运行正确

    IT笔试面试--大数乘法的详细代码及注释,已经调试运行正确,jAVA实现

    工行笔试工行笔试工行笔试

    工行笔试工行笔试工行笔试工行笔试工行笔试工行笔试

    C++面试题笔试题C++ 数据结构算法笔试题资料合集.zip

    50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案.docx c++笔试面试宝典.docx C++笔试面试题带答案.docx...

    互联网笔试互联网笔试互联网笔试

    互联网笔试互联网笔试互联网笔试

    java外包笔试题两套.zip

    java笔试题目两套,供大家参考。 题目主要分简答题,sql编写题目,和java上机题目三部分。 其中F卷难度稍微大一些,可以作为中高级程序员笔试用题目

    C++ 笔试题 google 微软 华为 索尼 中兴 大唐 各种C++笔试题目

    C++笔试题 Sony笔试题 几道题目及自做答案 北电 普天C++笔试题 我所收集的intel比试题 面试题 2005年腾讯招聘 微软 微软亚洲技术支持中心...将两个无序数组合并为有序链表 上海聚力传媒技术有限公司官方VC笔试题解答

    中国电信笔试中国电信笔试

    中国电信笔试中国电信笔试中国电信笔试中国电信笔试中国电信笔试中国电信笔试

    大数据开发笔试.docx

    它分为两个部分:NameNode和DateNode,NameNode相当于一个领导,将文件系统的Meta-data存储在内存中,这些信息主要包括了文件信息、每一个文件对应的文件块的信息和每一个文件块在DataNode的信息等。它管理集群内的...

    java笔试题笔试题

    java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 java笔试题 ...

    用友笔试题用友笔试题用友笔试题

    用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题用友笔试题...

    c笔试题c笔试题c笔试题

    c笔试题c笔试题c笔试题c笔试题c笔试题c笔试题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 v中兴笔试题 中兴笔试题 ...中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题 中兴笔试题

    笔试题 笔试题笔试题笔试题

    笔试题 c语言 智力题 笔试题 c语言 智力题 笔试题 c语言 智力题

    c++源码之大数阶乘大放送

    在笔试,面试中经常会碰到大数的操作问题,用基本的数据类型都有溢出的风险。在此,介绍一种比较好的思路,来计算大数的阶乘,比如。... 首先,定义两个整型的数组: int fac[1000];//暂且先设定是1000位,我称之为“结果数组”

    accp笔试试题笔试试题

    笔试试题笔试试题笔试试题笔试试题笔试试题笔试试题笔试试题笔试试题笔试试题笔试试题笔试试题

    阿里巴巴 java笔试 试题 有两份

    这里有两套阿里巴巴java开发工程师德笔试试题,和朋友们分享

    华信笔试题笔试题笔试题

    大连华信去年的笔试题,可以给各位即将工作的同学一些参考

Global site tag (gtag.js) - Google Analytics