| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
贴下我的代码,不过这代码在hdoj上AC不了,hdoj数据很强大,我A不了In Reply To:快哭了,怎么就是wa,我所有数据都试过了 Posted by:sunkuo at 2013-01-08 13:53:15 #include<iostream>
using namespace std;
int find_point(char a[])
{
int i;
for(i=0;i<6;i++)
if(a[i]=='.')break;
return i;
}
void multi(int answer[],int num,int &answer_len)
{
int c=0;
for(int i=0;i<answer_len;i++)
{
int s=(answer[i]*num+c);
answer[i]=s%10;
c=s/10;
}
while(c)
{
answer[answer_len++]=c%10;
c/=10;
}
}
int main()
{
int answer[150]={0};
int plus[10];
char R[10];
int n;
while(cin>>R>>n)
{
memset(answer,0,sizeof(answer));
memset(plus,0,sizeof(plus));
int point_locate=find_point(R);
int point_digit=(5-point_locate)*n;
int len=0;
for(int i=5;i>=0;i--)
{
if(R[i]!='.')
answer[len++]=plus[len]=R[i]-'0';
}
//cur=6 answer 5 digit;
if(plus[1]==0&&plus[2]==0&&plus[3]==0&&plus[4]==0&&plus[0]==0)
{
cout<<'0'<<endl;
continue;
}
if(n==0)
{
cout<<'1'<<endl;
continue;
}
for(int i=0;i<n-1;i++)
{
int num=plus[0]+plus[1]*10+plus[2]*100+plus[3]*1000+plus[4]*10000;
multi(answer,num,len);
}
int flag;
flag=len-1;
for(;flag>=point_digit;flag--)
if(answer[flag])break;
for(int i=flag;i>point_digit-1;i--)
cout<<answer[i];
flag=0;
for(;;){
if(answer[flag])break;
flag++;
}
if(flag<point_digit)
cout<<'.';
for(int i=point_digit-1;i>=flag;i--)
cout<<answer[i];
cout<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator