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

新人VS2008下测试了几个数据都对 结果WA 求救

Posted by tianshanfz at 2012-08-12 00:04:48 on Problem 3199
基本是这样的:BigNum类中num数组里倒序存储整数值 每一个元素最大存储9999(由M定)。length为数组有效元素的个数
#include <stdio.h>
#include <string.h>
#define M 10000
#define MAX 7
class BigNum
{
public:
	BigNum(){length=0;memset(num,0,MAX);}
	BigNum operator *(int iNum);
	void PrintBigNum();
	int num[MAX];
	int length;
};
void BigNum::PrintBigNum()
{
	int i=length-1;
	printf("%d",num[i--]);
	for (;i>=0;i--)
	{
		int temp;
		if (num[i]==0)
		{
			temp=M+1;
		}
		else
		{
			temp=M/num[i];
		}
		while (temp>10)
		{
			temp/=10;
			printf("0");
		}//以上给每一位补前0
		printf("%d",this->num[i]);
	}
}
BigNum BigNum::operator *(int iNum)
{
	BigNum result;
	int i;
	int dy=0;
	for (i=0;i<this->length;i++)
	{
		int x=this->num[i]*iNum+dy;
		result.num[i]=x%M;
		dy=x/M;
	}
	result.num[i]=dy;
	result.length=this->length;
	if (dy)
	{
		result.length++;
	}
	return result;
} 

BigNum Pow(int x,int y)
{
	BigNum result;
	result.length=1;
	result.num[0]=1;
	for(int i=0;i<y;i++)
	{
		result=result*x;
	}
	return result;
}
int main()
{
	int x,y;
	int i=0;
	scanf("%d %d",&x,&y);	
	while (x!=0||y!=0)
	{
		BigNum bn=Pow(x,y);
		bn.PrintBigNum();
		printf("\n");
		scanf("%d %d",&x,&y);
	}
	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