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

Re:一个奇异的程序(G++可过)

Posted by pdfpdf at 2006-05-20 00:17:45 on Problem 1019
In Reply To:一个奇异的程序(G++可过) Posted by:pdfpdf at 2006-05-20 00:11:43
不用long long 前的形态:
#include<iostream>
using namespace std;
int main()
{
	unsigned int a[5]={0,45,9045,1395495,189414495};
	unsigned int b[6]={0,1,11,192,2893,38894};
	int c[6]={0,1,10,100,1000,10000};
	unsigned long n,i;
    for(cin>>n;n>0;n--)
	{
		cin>>i;
		int j;
		for(j=1;i>a[j];++j); //判是几位数
		i-=a[j-1];
		unsigned int s=b[j],f=c[j];
		for(;i>s;++f)
			s+=b[j]+(f-c[j]+1)*j;
		int t=s-i;                                  
		for(;t>0;--f,t-=j)
			if(f<c[j])j--;                           
        if(t!=0){
			f+=1; 
			if(f>c[j]*10-1)j++;              
            t+=j;                             
			for(;t!=0;--t,f/=10);
		}
		cout<<f%10<<endl;
	}
}

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