Description:
给出一些整数对,一个是可能接近100位的大数,另一个只有1位数,求这些整数对的乘积。
Sample Input:
1 1
123 0
12345678910 8
123456789101234567891012345678910 7
Sample Output:
1
0
98765431280
864197523708641975237086419752370
Source:
#include <iostream>
using namespace std;
void GetResult(char* num1,int num2,char *output)
{
if(num2==0)
{
*output='0';
*(output+1)='\0';
return;
}
int len=strlen(num1);
int* inum1=new int[len];
char* pChar=NULL;
int index=0;
int temp=0;
for(index=0,pChar=num1;index<len;++index,++pChar)
inum1[index]=((int)*pChar-48)*num2;
for(index=len-1;index>=0;--index)
{
output[index]=char((inum1[index]+temp)%10+48);
temp=(inum1[index]+temp)/10;
}
*(output+len)='\0';
if(temp>0)
{
for(pChar=output+len+1;pChar>output;--pChar)
*pChar=*(pChar-1);
*output=char(temp+48);
}
delete inum1;
}
int main(int argc, char* argv[])
{
char buf[255];
char result[255];
int num=0;
while(cin>>buf>>num)
{
GetResult(buf,num,result);
cout<<result<<endl;
}
return 0;
}