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

实在不明白全部数据都过了,你们说的数据也过了.但还是WA.哪位高手指点下(代码是C++ 有注释)

Posted by level at 2007-01-09 22:11:06 on Problem 1001
#include<iostream.h>
#include<math.h>
#include<string.h>
const int max=5000;
int fdou(int dx)		//计算R有多少位小数!!..数据只有6位长从这个得出小数有多少...
{
	int k=0;
    while(dx/10!=0){k++;dx=dx/10;}
	return k+1;
}
void maxnumbermul(int *pa,int number,int pown) //一个数组,乘R,乘N次
{
	int i,j,set;
	for(i=0;i<max;i++)
		pa[i]=0;
	for(i=0,j=number;j>0;i++,j=j/10)
		pa[i]=j%10;
	set=0;
	for(i=1;i<pown;i++)
		for(j=0;j<max;j++)
		{
			pa[j]=pa[j]*number+set;
			set=pa[j]/10;
			pa[j]=pa[j]%10;
		}
}
int main()
{
	
	int n,i,j,k,a[max];
	double r,dr;
	while(cin>>r>>n)
	{
		if(r==0)
		{
			cout<<"0\n";
			continue;
		}
		dr=r;
        if(fdou((int)r)==1){j=4;r=r*10000;}
		else {j=3;r=r*1000;}
		j=j*n;
		cout<<r<<endl;
		maxnumbermul(a,(int)r,n);
		for(i=max-1;a[i]==0;i--);
		for(k=0;a[k]==0;k++);
		if(dr<1) i=j-1;		//保证<1的数字能将有意义0全输出.
		for( ;i>=j;i--)
			cout<<a[i];
		if(j!=0)
		{
			if(i>=k) cout<<'.';// 后面没数字,就不要输出.了
			for( ;i>=k;i--)
				cout<<a[i];
			cout<<endl;
		}
		else cout<<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