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的童鞋…一个测试的数据…曾让我纠结很久的一道题目

Posted by zczero at 2010-09-20 14:52:14 on Problem 1001
In Reply To:测试数组全过 但就是WA Posted by:namewchwch at 2009-09-23 11:52:49
> #include<iostream>
> #include<string>
> #include<vector>
> #include<algorithm>
> #include<sstream>
> using namespace std;
> int main()
> {
> 	string str;int n; int carry=0;int remain;vector<int> result1;vector<int> a;int z=0;bool bl=true;
> 	
> 	vector<int> *b=new vector<int>();;int k=0;int q=0;vector<int> *result2;
> 	vector<int>::iterator   it;vector<int>::iterator   itt;vector<int>::iterator add;vector<int>::iterator add2;
> 	while(cin>>str>>n)
> 	{   b->clear();a.clear();k=0;q=0;z=0;carry=0;bl=true;
> 	    result1.clear();
> 		for(int i=str.length()-1;i>=0;i--)                                         //标准化数组  把小数位数放如k,或 10的位数放入z
> 		{  
> 			if(str[i]=='.'){k=str.length()-1-i-z;z=0;continue;}
> 			if(str[i]=='0'&&bl){z=z+1;continue;}
> 			bl=false;
> 		  a.push_back((str[i]-'0'));b->push_back((str[i]-'0'));                 //a=b=R
> 			
> 		}
> 		k=n*k;z=z*n;                                                         //计算幂次后小数位数k  或10
> 		for(int i=0;i<n-1;i++)                                                //b=R乘以R n-1次
> 		{   
> 			
> 			vector<int>*pp=new vector<int>();
> 			result2=pp;
> 			for(it=(a.begin());it!=(a.end());++it)
> 			{   
> 				
> 				for(itt=b->begin();itt!=b->end();++itt)
> 				{   
> 					if(q==0){result2->push_back(0);}
> 					remain=((*it)*(*itt)+carry)%10;
> 
> 					carry=((*it)*(*itt)+carry)/10;
> 					result1.push_back(remain);
> 				}
> 				if(carry){result1.push_back(carry);}
> 				add2=result2->begin()+q;carry=0;
> 				
> 				for(add=result1.begin();add!=result1.end();++add)
> 				{ 
> 					if(add2==(result2->end())){result2->push_back(0);add2=(result2->end()-1);}
> 					remain=((*add)+(*add2)+carry)%10;
> 					carry=((*add)+(*add2)+carry)/10;
>                     (*add2)=remain;
>                       add2+=1;
>                  }
> 				if(carry){result2->push_back(carry);}
> 				q=q+1;carry=0;result1.clear();
> 			}
> 			delete b;
> 			b=result2;
> 		     q=0;
> 
> 		}
> 		int i=0;                                                       //输出 
> 
> 			for(add=b->end();add!=b->begin();add--)
> 			{  
> 				if(i==(b->size()-k))cout<<"."<<flush;
> 				cout<<*(add-1)<<flush;
> 				i=i+1;
> 		
> 
> 			}
> 		while(z)
> 		{
> 			cout<<"0"<<flush;
> 			z=z-1;
> 		}
> 		if(!z) cout<<"\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