当前位置: 代码迷 >> 综合 >> uva-10106 - Product
  详细解决方案

uva-10106 - Product

热度:47   发布时间:2023-12-19 11:45:06.0

这道题目我做了很长时间,主要原因是一开始用的方法走到最后的时候走错了,无奈之下只好换了个思路。

这个题目的思路和上一个题目的思路几乎差不多,都是一个个剥离出来,不过这次我把字符串保存的数字直接用ASCII码表示了。

#include <stdio.h>   
#include <string.h>   
int main()  
{  
int u,i,j,k,n,m,shu,leap;
char str2[10000],str1[10000],sum[10000];  
while(gets(str1)!=NULL)  
{    
gets(str2);
memset(sum,0,sizeof(sum));  
n=strlen(str1);  
m=strlen(str2);
for(i=0;i<n;i++)  
str1[i]-='0';    
for(i=0;i<m;i++)  
str2[i]-='0';
for(k=n-1;k>=0;k--)  
{  
leap=0;  
u=n-1-k;  
for(j=m-1;j>=0;j--)  
{  
shu=str2[j]*str1[k]+leap+sum[u];  
sum[u]=shu%10;  
u++;
leap=shu/10;  
}  
if(leap)  
{
sum[u]=leap;  
u++;
}
} 
for(i=u-1;i>0;i--) 
if(sum[i])  
break;  
for(i;i>=0;i--)  
printf("%d",sum[i]);  
printf("\n");  
}  
return 0;  
}  



 

  相关解决方案