
ans[i+j+1] += (a[i]-48)*(b[j]-48);这里的减48是什么意思?
#include<stdio.h>#include<string.h>#include<iostream>usingnamespacestd;intmain(){char...
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
char a[8],b[8];
char ans[16];
int len1,len2;
scanf("%s%s",a,b);
len1 = strlen(a);
len2 = strlen(b);
memset(ans,0,sizeof(ans));
for(int i=len1-1; i>=0; i--)
for(int j=len2-1; j>=0; j--)
{
ans[i+j+1] += (a[i]-48)*(b[j]-48);
if (ans[i+j+1]>9)
{
ans[i+j] += ans[i+j+1]/10;
ans[i+j+1] %= 10;
}
}
if ((len1==1 && a[0]=='0') || (len2==1 && b[0]=='0'))
printf("0");
/*
if(0 == mulNum[1] ) //说明整体为0
cout<<"0"<<endl;
*/
else
{
if (ans[0]!=0)
printf("%d",ans[0]);
for(int i=1; i<len1+len2; i++)
printf("%d",ans[i]);
}
printf("\n");
return 0;
} 展开
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
char a[8],b[8];
char ans[16];
int len1,len2;
scanf("%s%s",a,b);
len1 = strlen(a);
len2 = strlen(b);
memset(ans,0,sizeof(ans));
for(int i=len1-1; i>=0; i--)
for(int j=len2-1; j>=0; j--)
{
ans[i+j+1] += (a[i]-48)*(b[j]-48);
if (ans[i+j+1]>9)
{
ans[i+j] += ans[i+j+1]/10;
ans[i+j+1] %= 10;
}
}
if ((len1==1 && a[0]=='0') || (len2==1 && b[0]=='0'))
printf("0");
/*
if(0 == mulNum[1] ) //说明整体为0
cout<<"0"<<endl;
*/
else
{
if (ans[0]!=0)
printf("%d",ans[0]);
for(int i=1; i<len1+len2; i++)
printf("%d",ans[i]);
}
printf("\n");
return 0;
} 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询