Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

那位大牛帮忙看看错哪了 1001

Posted by 1001858 at 2009-12-16 15:03:10 on Problem 1001
#include<stdio.h>
#include<string.h>
const int MAX=7;
const int mbit=500;
char mul[MAX];
char mutp[mbit];
char result[mbit];
int n;
int dot;
int dotbit;
int main()
{
	while(scanf("%s%d",mul,&n)!=EOF)
	{
		int i,j;
		dotbit=0;
		for(i=0;mul[i]!='\0';i++)
		{
			if(mul[i]=='.')
			{
				dotbit=5-i;
				break;
			}
		}
		if(n==0)
		{
			printf("1\n");
			continue;
		}
		if(n==1) 
		{
			printf("%s\n",mul);
			continue;
		}
        memset(result,0,sizeof(result));
		memset(mutp,0,sizeof(mutp));
		dotbit=dotbit*n;
        if(dotbit==0) dot=5;
		else dot=4;
        for(i=0,j=5;j>=0;j--)
		{
			if(mul[j]!='.') 
				mutp[i++]=mul[j];
		}
		for(i=0,j=0;mutp[i]!=0;i++)
			mul[j++]=mutp[i];


		//printf("%s %s\n",mul,mutp);
	
		
		while(n-1>0)
		{
			for(i=0;i<=dot;i++)
			{
				int c=0;
				for(j=0;mutp[j]!=0;j++)
				{
					if(result[i+j]==0)
					{ 
						int cc=((mul[i]-48)*(mutp[j]-48)+c)/10;
						result[i+j]=((mul[i]-48)*(mutp[j]-48)+c)%10+48;	
						c=cc;
					   
					}
                    else
					{
						int cc=((result[i+j]-48)+(mul[i]-48)*(mutp[j]-48)+c)/10;
						result[i+j]=((result[i+j]-48)+(mul[i]-48)*(mutp[j]-48)+c)%10+48;
						c=cc;
				        
					}
				}
				if(c!=0) result[i+j]=c+48;
			}

			//printf("%s\n",result);
			strcpy(mutp,result);
		    memset(result,0,sizeof(result));
			n--;
		}

		//printf("%s\n",mutp);

		int count=0;
		for(i=0;mutp[i]!=0;i++)	count++;

		//printf("%d\n",count);
		bool mark=false;
		int s=-1;
		for(i=0;i<count;i++)
            if(mutp[i]!='0') 
			{
				s=i;
				break;
			}
		bool flag=false;
		if(dotbit==0)
		{
            for(i=count-1;i>=0;i--)
			{
				if(mutp[i]!='0') flag=true;
				if(flag) printf("%c",mutp[i]);
			}
		}

		else for(i=count-1;i>=s;i--)
		{
			if(mutp[i]!='0'||i==dotbit-1) flag=true;
			if(flag)
			{
                  if(i!=(dotbit-1)) printf("%c",mutp[i]);
				  else {printf(".");printf("%c",mutp[i]);}
			}
		}
		printf("\n");
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator