问题是这样的.. 输入
n [the number of multiplications <= 1000]
l1 l2 [numbers to multiply (at most 10000 decimal digits each)]
Text grouped in [ ] does not appear in the input file.
输出
The results of multiplications.
我的代码..
#include<iostream>
#include<vector>
using namespace std;
int main()
{
long int n,a,b,c,t;
vector<long int> v(1000);
vector<long int>::iterator p;
cin>>n;
t=n;
p=v.begin();
while(t>0)
{
cin>>a;
cin>>b;
*p=a;
*(p+1)=b;
p+=2;
t--;
}
t=n;
p=v.begin();
while(t>0)
{
c= (*p) * (*(p+1));
cout<<"\n"<<c;
p+=2;
t--;
}
return 0;
}
答案 0 :(得分:4)
不得不谷歌你的问题来理解它是什么:here it is,请考虑你的读者:x
您的代码实际上无法正常工作:long int不够长(而且这仍然取决于实现)
你必须通过'char'读取整数'char'并滚动你自己的BigInts实现,这是我猜测的问题的难点。
此外,您将不得不处理溢出:int x int的结果可能不适合int。说实话,你应该准备好一个可能需要高达20.000位数的结果
答案 1 :(得分:3)
long int
不会接近10,000个十进制数字。
-9,223,372,036,854,775,808 to +9,223,372,036,854,775,807
答案 2 :(得分:0)
您可以找到程序将通过的100个测试用例并不奇怪。
在大多数32位编译器上,long int
(也写为long
)是一个32位数字。它可以容纳大约40亿个唯一值(这是一个10位数字)。因此,如果您只发现了程序通过的100个测试用例,那么您并没有真正尝试过!
你有没有试过让你的程序乘以291087345245742687609834756790356568098645乘以100108810983456785767868356745567566892348745?