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为什么是Compile Error? 新人跪求! 源代码奉上。。望解答。

Posted by 13xiaobang at 2009-12-07 15:16:18
//自己的机器上VC6.0运行一点问题也没有,这是为什么?


#include "iostream"
#include "string"
#include "math.h"
using namespace std;

string calone(string Num1,int ch2)
{
	char a[1];
	int ch1;
	string ans;
	int tempans;
	int flag=0;
	int length=Num1.length();
	for(int i=0;i<length;i++)
	{
		ch1=Num1.at(length-1-i)-48;
		if(flag+ch1*ch2<10)
		{
			tempans=flag+ch1*ch2;
			flag=0;
		}
		else
		{
			tempans=(flag+ch1*ch2)%10;
			flag=(flag+ch1*ch2-tempans)/10;
		}
		ans=itoa(tempans,a,10)+ans;
	}
	if(flag!=0)
		ans=itoa(flag,a,10)+ans;
	return ans;
}

string addNum(string Num1,string Num2)
{
	int length1 =  Num1.length();
	int length2 =  Num2.length();
	int tempans=0;
	int chaju=abs(length1-length2);
	string ans;
	int flag=0;
	int length=0;
	char a[1];
	int i=0;
	if(length1>length2)
	{
		length=length2;
		for( i=0;i<length;i++)
		{
			tempans=Num1.at(length+chaju-1-i)-48+Num2.at(length-1-i)-48+flag;
			if(tempans>9)
			{
				flag=1;
				tempans-=10;
			}
			else
			{
				flag=0;
			}
			ans=itoa(tempans,a,10)+ans;
		}
		for(;i<length1;i++)
		{
			tempans=Num1.at(length+chaju-1-i)-48+flag;
			flag=0;
			ans = itoa(tempans,a,10)+ans;
		}
		if(flag)
			ans=itoa(flag,a,10)+ans;
		return ans;
	}
	else
	{
		length=length1;
		for( i=0;i<length;i++)
		{
			tempans=Num1.at(length-1-i)-48+Num2.at(length+chaju-1-i)-48+flag;
			if(tempans>9)
			{
				flag=1;
				tempans-=10;
			}
			else
			{
				flag=0;
			}
			ans=itoa(tempans,a,10)+ans;
		}
		for(;i<length2;i++)
		{
			tempans=Num2.at(length+chaju-1-i)-48+flag;
			flag=0;
			ans = itoa(tempans,a,10)+ans;
		}
		if(flag)
			ans=itoa(flag,a,10)+ans;
		return ans;
	}
}

string caltwo(string Num1,string Num2)
{
	int length2 =  Num2.length();
	string zero="";
	if(length2==1)
		return calone(Num1,Num2.at(0)-48);
	else
	{
		string ans="0";
		for(int i = 0;i<length2;i++)
		{
			zero="";
			for(int j=0;j<i;j++)
				zero=zero+'0';
			ans=addNum(ans,calone(Num1,Num2.at(length2-1-i)-48)+zero);
		}
		return ans;
	}
	
}

int main()
{
	string Num1;
	int wei=0;
	string s1;
	int n;
	int length;
	string ans;
	string bei;
	bool flag=0;
	while(cin>>Num1>>n)
	{
		length=Num1.length();
		while(Num1.at(length-1)=='0')
		{
			length--;
			Num1.erase(length);
		}
		s1=Num1;
		wei = s1.find_first_of('.',0);
		wei=length-wei-1;
		s1.erase(length-wei-1,1);
		bei=s1;
		ans=s1;
		for(int j=0;j<n-1;j++)
			ans=caltwo(ans,bei);
		int anslength = ans.length();
		ans.insert(anslength-wei*n,1,'.');
		cout<<ans<<endl;
		wei=0;
		length=0;
	}
	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