题目描述
给出一个长方形的长和宽,求该长方形的面积。假设长为a,宽为b,则面积S=a*b。
输入格式
输入一行,两个整数,以空格分隔,分别表示长方形的长和宽。长和宽都不大于1000
输出格式
一个整数,即长方形的面积。
样例输入
4 3
样例输出
12
思路说明
实际上就是乘法……
40分代码
#include<iostream>
using namespace std;
int main(){
int a,b;
cin>>a>>b;
cout<<a*b;
return 0;
}
错点分析
共有5个测试点,40分就是错了两个。一个测试点是因为TIE,所以可以用函数解决。另外2个测试点是因为太大的问题,所以要用高精度。
AC代码
#include<bits/stdc++.h>
using namespace std;
string mul(string x,string y){//高精度乘法
string ans;
int a[1011]={},b[1011]={},c[101100]={};
int lena=x.size();
int lenb=y.size();
for(int i=1;i<=lena;i++) a[i]=x[lena-i]-'0';
for(int i=1;i<=lenb;i++) b[i]=y[lenb-i]-'0';
for(int i=1;i<=lena;i++){
for(int j=1;j<=lenb;j++){
c[i+j-1]+=a[i]*b[j];
}
}
int lenc=lena+lenb-1;
for(int i=1;i<=lenc;i++){
c[i+1]+=c[i]/10;
c[i]%=10;
}
while(c[lenc+1]){
lenc++;
c[lenc+1]+=c[lenc]/10;
c[lenc]%=10;
}
for(int i=lenc;i>=1;i--){
ans=ans+char(c[i]+'0');
}
return ans;
}
int main(){
cin.tie(0);//防止超时
cout.tie(0);//防止超时
string a,b;
cin>>a>>b;
cout<<mul(a,b);
return 0;
}