能力强的人善于解决问题,有智慧的人善于绕过问题。 区别很微妙,小心谨慎做后者。
全部博文(399)
分类: LINUX
2010-06-03 14:59:02
#include
#include
#include
char result[10000];
int length;
void output(int pos)
{
int len = strlen(result);
char t;
if(pos
if(!pos) {printf("%s\n",result);return;}
t = result[len-1-pos];
result[len-1-pos]='\0';
printf(result);
printf("%c.%s",t,result+len-pos);
}else{
printf(".");
for(int i=0;i
printf(result);
}
printf("\n");
}
void mul(char s1[], int len1, char s2[], int len2)
{
char *tmp = (char *)malloc(len1+len2);
memset(tmp,0,len1+len2);
int len = len1 +len2-1 , i,j,k;
for(i=len1-1;i>-1;i--)
for(j=len2-1;j>-1;j--)
{
tmp[len-i-j-1] +=(s1[i]-'0')*(s2[j]-'0');
tmp[len-i-j]+= tmp[len-i-j-1]/10;
tmp[len-i-j-1]%=10;
}
i=len-1;
if(tmp[len])
i=len;
for(j=i,k=0;j>-1;j--,k++)
result[k] = tmp[j]+ '0';
result[k] = '\0';
}
void cal(char factor[] , int n ,int pos)
{
int len=strlen(factor);
for(int i=0;i
output(pos*n);
}
int main()
{
int l,m,r,pos,len;
char a[100];
char in[100];
int n;
while(scanf("%s%d",in,&n)!=EOF)
{
memset(a,0,sizeof(a));
len = strlen(in);
l=m=0;r=len-1;
while(m
while(l
while(r>-1 && in[r]=='0')
r--;
pos = r-m;
if(l
strncpy(a,in+l,m - l);
strncpy(a+m-l,in+m+1,r-m);
}else {
strncpy(a,in+l,r-l+1);
}
}else{
pos = 0;
strcpy(a,in);
}
strcpy(result,a);
cal(a,n,pos);
}
return 0;
}