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

为什么一直wrong time error啊?

Posted by whuwinnie at 2008-07-18 14:11:19 on Problem 1001
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 100000000
long long a[100];
int main()
{
	int i, j, dot, flagdot, n, adv,len, flen;
	long long k;
	char s[10],substr[20], str[2000];
	while(scanf("%s%ld",s,&n)!=EOF)
	{
		memset(a, 0, sizeof(a));
		flagdot = 0;
		dot = -1;
		k = 0;
		j = strlen(s) - 1;
		while(s[j] == '0') j--;
		for(i = 0; i <= j; i++)
		{
			if(s[i] != '.')
				k = k * 10 + s[i] - '0';
			else flagdot = 1;
			if(flagdot == 1)		
				dot++;
		}
		a[0] = k;
		adv = 0;
		for( i = 0; i < n - 1; i++)
		{
			for(j = 0; j < 99; j++)
			{
				a[j] = a[j] * k + adv;
				adv = a[j] / N;
				a[j] = a[j] % N;
			}
		}
		
		i = 99;
		while(a[i] == 0) i--;
		itoa(a[i], substr, 10);
		str[0] = '\0';
		strcat(str,substr);
		i--;
		while(i >= 0)
		{
			itoa((int)a[i],substr, 10);
			len = 8 - strlen(substr);
			while(len--) strcat(str,"0");
			strcat(str,substr);
			i--;
		}
		len = strlen(str);
		flen = len - dot * n;
		if(flen < 0)
		{
			putchar('.');
			while(flen)
			{
				putchar('0');
				flen++;
			}
			printf("%s\n",str);
			continue;
		}
		else if(flen == len + n || flen == len)
		{
			printf("%s\n",str);
			continue;
		}
		for(i = 0; i < flen; i++)
			putchar(str[i]);
		putchar('.');
		for(i = flen; str[i]; i++)
			putchar(str[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