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

没道理阿。方法一样,怎么就TLE了?谁来告诉我啊!!

Posted by liao14 at 2008-02-08 11:02:39 on Problem 1019 and last updated at 2008-02-08 11:17:04
In Reply To:我用了字符串的方法,有更高效的方法吗?? Posted by:church at 2007-05-20 11:28:50
这个是上面仁兄的

#include <iostream.h>
#include <stdlib.h>
#include <string.h>

void main()
{
    long i,j,k,m,n,sum;
	char a[10];
	int radix=10;

	cin>>m;
	for(i=0;i<m;i++)
	{
		cin>>n;
		k=1; sum=1;
		while (n>sum)
		{
			n=n-sum;
			k++;
			ltoa(k,a,radix);
			sum=sum+strlen(a);
		}
		j=1; sum=1;
		ltoa(j,a,radix);
		while (n>sum)
		{
			n=n-sum;
			j++;
			ltoa(j,a,radix);
			sum=strlen(a);
		}
		n--;
		cout<<a[n]<<endl;
	}
}




这个TLE
#include<iostream>
#include<cstring>
using namespace std;

int main()
{
	//freopen("in.txt","r",stdin);
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		char str[100];
		cin>>n;
		int sum=0,s=0,i=1;
		while(n>sum)
		{
			itoa(i,str,10);
			s+=strlen(str);
			i++;
			sum+=s;
		}
		sum-=s;
		n-=sum;
		sum=0,i=1;
		while(n>sum)
		{
			itoa(i,str,10);
			sum+=strlen(str);
			i++;
		}
		i--;
		itoa(i,str,10);
		sum-=strlen(str);
		n-=sum;	
		itoa(i,str,10);
		cout<<str[n-1]<<endl;
	}
	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