| ||||||||||
| 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 | |||||||||
刷屏,还是没过 请大家看看,很清楚#include <iostream>
using namespace std;
/** pow */
int pLen;
/** length of 0 */
int zbLen;
int zfLen;
int DToInt(double);
void Resolve(int,int,int[]);
void Print(int[],int);
int main()
{
int r,n;
int rlt[125];
double R;
while(cin>>R>>n){
if(R-0<0.000001)
{
cout<<'0'<<'\n';
return 1;
}
memset(rlt,0,sizeof(rlt));
zbLen=0;
zfLen=0;
r=DToInt(R);
Resolve(r,n,rlt);
Print(rlt,r);
}
return 0;
}
int DToInt(double R)
{
int r;
if(R<10){
r=int((R+0.00001)*10000);
pLen=4;
}
else{
r=int((R+0.0001)*1000);
pLen=3;
}
return r;
}
void Resolve(int r,int n,int rlt[])
{
rlt[0]=r%10;
rlt[1]=r/10%10;
rlt[2]=r/100%10;
rlt[3]=r/1000%10;
rlt[4]=r/10000%10;
if(rlt[0]==0){
zbLen++;
if(rlt[1]==0){
zbLen++;
if(rlt[2]==0){
zbLen++;
if(pLen==4&&rlt[3]==0){
zbLen++;
}
}
}
}
zbLen*=n;
zbLen--;
pLen*=n;
pLen--;
if(r<10000){
zfLen=4*n;
zfLen--;
}
while(n-->1){
int p=0;
for(int i=0;i<125;i++){
rlt[i]=rlt[i]*r+p;
p=rlt[i]/10;
rlt[i]=rlt[i]%10;
}
}
}
void Print(int rlt[],int r)
{
int i;
if(r<10000){
i=zfLen;
} else {
i=125;
while(rlt[--i]==0);
}
while(i>=0){
if(i==pLen&&zbLen!=pLen)cout<<'.';
if(i<=zbLen)break;
cout<<rlt[i--];
}
cout<<endl;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator