基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
收藏
关注
给出2个大整数A,B,计算A*B的结果。
Input
第1行:大数A 第2行:大数B (A,B的长度 <= 1000,A,B >= 0)
Output
输出A * B
Input示例
123456 234567
Output示例
28958703552
相关问题
大数加法
0
大数开平方
640
大数进制转换
320
大数除法
320
大数乘法 V2
80
代码:
1 #include<cstdio> 2 #include<cstring> 3 const int maxn = 1010; 4 char a[maxn],b[maxn]; 5 int aa[maxn],bb[maxn],c[2020]; 6 int main() 7 { 8 int i,j; 9 while(scanf("%s %s",a,b)!=EOF) 10 { 11 if(a[0]==‘0‘||b[0]==‘0‘) {printf("0\n");continue;} 12 memset(c,0,sizeof(c)); 13 int l1=strlen(a),l2=strlen(b); 14 for(i=0;i<l1;i++) 15 aa[i]=a[l1-i-1]-‘0‘; 16 for(i=0;i<l2;i++) 17 bb[i]=b[l2-i-1]-‘0‘; 18 for(i=0;i<l1;i++) 19 { 20 for(j=0;j<l2;j++) 21 { 22 c[i+j]=aa[i]*bb[j]+c[i+j]; 23 c[i+j+1]=c[i+j+1]+c[i+j]/10; 24 c[i+j]=c[i+j]%10; 25 } 26 } 27 i=l1+l2; 28 while(!c[i]) i--; 29 for(;i>=0;i--) 30 printf("%d",c[i]); 31 printf("\n"); 32 } 33 return 0; 34 }
Java:
1 import java.util.Scanner; 2 import java.math.*; 3 public class Main{ 4 5 public static void main(String[] args){ 6 Scanner in=new Scanner(System.in); 7 //默认分隔符为空格// 8 BigInteger a=in.nextBigInteger(); 9 BigInteger b=in.nextBigInteger(); 10 11 System.out.println((a.multiply(b))); 12 } 13 }
时间: 2024-10-21 00:55:25