码迷,mamicode.com
首页 > 其他好文 > 详细

超级计算机

时间:2019-04-16 13:08:04      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:function   ring   word   for   ++   out   amp   use   遇到的问题   

题目描述

贝贝是学校信息学编程小组的学生,一天,他的数学老师碰到这样一个问题:他想求两个很长的数的乘积,但用普通的计算器无法完成计算,于是他请编程班的贝贝帮忙设计一个“超级计算器”,解决他所遇到的问题。

请你编一程序,帮助贝贝解决这个问题。

输入输出格式

输入格式:

两行,分别是两个在10^10~10^100以内的自然数。

输出格式:

一行,为两数相乘的结果。

输入输出样例

输入样例:
578474357954668
12435124571
输出样例:
7193400702295541350947428

思路:同加减法,辨别进位。
代码:
//程序名:新的C++程序
//作者: 

#include<iostream>
#include<fstream>
#include<algorithm>
#include<string>
using namespace std; 
int a[1001],b[1001],c[1000001],la,lb,lc,x; 
string ans,a1,b1;
int main()
{
	cin>>a1>>b1;
	 la=a1.size();lb=b1.size();
	 for(int i=0;i<=la-1;i++)a[la-i]=a1[i]-48;
	 for(int i=0;i<=lb-1;i++)b[lb-i]=b1[i]-48;
	 for(int i=1;i<=la;i++)
	 {
			x=0;
			for(int j=1;j<=lb;j++)
			{
					c[i+j-1]=a[i]*b[j]+x+c[i+j-1];
					x=c[i+j-1]/10;
					c[i+j-1]%=10;
			}
		   c[i+lb]=x;
	 }
	 lc=la+lb;
	 while(c[lc]==0&&lc>1)lc--;
	 for(int i=lc;i>=1;i--)cout<<c[i];
} 
 

超级计算机

标签:function   ring   word   for   ++   out   amp   use   遇到的问题   

原文地址:https://www.cnblogs.com/2006hanziwei/p/10716252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!