YTU.2326: 大数的乘法【数组】

网友投稿 470 2022-10-27

YTU.2326: 大数的乘法【数组】

YTU.2326: 大数的乘法【数组】

2326: 大数的乘法【数组】

题目描述

大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法精确表示的数值。例如:我们要计算如下两个数的乘积时,用我们已知的数据类型是无法精确表示其结果的:

a1 = 11111111111111111111111111111111111

b1 = 11111111111111111111111111111111111111

求:a1 * b1;

输入

输入两行:每行一个数字,每行的数字不超过100位;

输出

输出一行:为这两个大数的乘积

样例输入

1111111111111111111111111111111111

样例输出

123456790123456666654320987654321

模拟手算过程即可

AC代码:

/*细心!!!*/#includeusing namespace std;char a[101],b[101];int c[10005];int main() { cin>>a>>b; int len1=strlen(a); int len2=strlen(b); int carry=0; int num,m=0; for(int i=len2; i>0; i--) { carry=0; //新一轮运算进位一定要初始化0! m=len2-i; for(int j=len1; j>0; j--) { int x=b[i-1]-'0'; int y=a[j-1]-'0'; num=x*y+carry; c[m]+=num; if(c[m]>9) { carry=c[m]/10; c[m]=c[m]%10; } else { carry=0; } m++; } c[m]=carry; }//cout<=0; i--) cout<

JAVA代码:

import java.util.Scanner;import java.math.*; //BigDecimal BigIntegerpublic class Mul { public static void main(String args[]) { Scanner cin = new Scanner ( System.in ); BigInteger a,b; a = cin.nextBigInteger(); b = cin.nextBigInteger(); System.out.println(a.multiply(b)); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用Docker和Fabric启动新Web项目的框架
下一篇:Apache Spark:开源数据分析集群计算框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~