标题大数相乘,求两个不超过100位的数的乘积。(提示:用数组保存两个大数)
**例如:
输入:
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
输出:
7407407407407407407407405925925925925925925925926**``
#include <stdio.h>
int main()
{
int a
[100] = {0},b
[100] = {0},c
[200] = {0};
char sa
[100] = {0},sb
[100] = {0};
int i
,j
;
int m
= 0,n
= 0;
scanf("%s %s",sa
,sb
);
while(sa
[m
] != '\0')
{
a
[m
] = sa
[m
] - '0';
m
++;
}
while(sb
[n
] != '\0')
{
b
[n
] = sb
[n
] - '0';
n
++;
}
for(j
= 0;j
< n
;j
++)
{
for(i
= 0;i
< m
;i
++)
{
c
[i
+ j
+ 1] += a
[j
] * b
[i
];
}
}
for(i
= m
+ n
- 1;i
>= 0;i
--)
{
if(c
[i
] > 9)
{
c
[i
- 1] += c
[i
] / 10;
c
[i
] %= 10;
}
}
i
= 0;
printf("\n这两数相乘之积为:\n");
if(c
[i
] == 0)
{
for(i
= 1;i
< m
+ n
- 1;i
++)
{
printf("%d",c
[i
]);
}
}
else
{
for(i
= 0;i
< m
+ n
- 1;i
++)
{
printf("%d",c
[i
]);
}
}
return 0;
}
转载请注明原文地址: https://mac.8miu.com/read-513423.html