📄 cpp1.cpp
字号:
#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int main()
{
double A[20];
double R,r,intR=0,input=0;
int n;
int i,j,temp,s;
while(cin>>R>>n)
{ cout<<setprecision(15);
int ks=0;
double xx=R+0.000000000000001;
r=R-(int)R+0.00000000000001;
while(r>0.0000001)
{
r=fmod(r,0.1);
r*=10;
R*=10;
ks++;
}
A[19]=(int)(R+0.01);
input=(int)(R+0.01);
ks*=n;
for(i=0;i<19;i++)A[i]=0;
s=19;
for(i=0;i<n-1;i++)
{
for(j=19;j>=s;j--)
{
A[j]*=input;
}
for(s=19;s>j+1;s--)
{
temp=A[s]/100000000.0;
A[s]-=temp*100000000.0;
A[s-1]+=temp;
}
if(A[s]>=100000000.0)
{
temp=(int)(A[s]/100000000.0);
A[s]=A[s]-temp*100000000.0;A[s-1]+=temp;
s-=1;
}
}
i=ks/8;
j=ks-8*i;
int kkkk=s;
if(xx>=1)
{
int counts,st;
short a[8];
for(st=0;st<8;st++)a[st]=0;
if(s==19)
{
int cc=counts=log10(A[19])+1;
for(st=8-cc;st<8;st++){int x=pow(10,(double)(cc-1));a[st]=A[s]/x;A[s]-=a[st]*x;cc--;}
for(st=8-counts;st<8-j;st++)cout<<a[st];
if(j!=0)cout<<".";
for(;st<8;st++)cout<<a[st];
}
else
{
counts=19-i-s;
for(st=0;st<counts;st++)
{
if(st==0){cout<<A[s++];continue;}
int ss=log10(A[s])+1;
for(int t=1;t<8-ss;t++)cout<<0;
cout<<A[s++];
}
if(A[s]!=0)
{
int tt=log10(A[s])+1;
int sa=A[s];
for(st=8-tt;st<8;st++){int x=pow(10,(double)(tt-1));a[st]=sa/x;sa-=a[st]*x;tt--;}
}
if(s!=kkkk)
{
for(i=0;i<8-j;i++)cout<<a[i];
if(!(s==19&&j==0))cout<<".";
for(;i<8;i++)cout<<a[i];
s++;
}
else
{
counts=log10(A[s])+1;
for(counts=8-counts;counts<8-j;counts++)cout<<a[counts];
if(!(s==19&&j==0))cout<<".";
for(;counts<8;counts++)cout<<a[counts];
s++;
}
for(;s<20;s++)
{
counts=log10(A[s])+1;
for(i=0;i<8-counts;i++)cout<<0;
cout<<A[s];
}
}
}
else
{
int counting0=log10(A[s])+1;
counting0=ks+8*s-152-counting0;
cout<<".";
for(i=0;i<counting0;i++)cout<<0;
cout<<A[s++];
for(;s<20;s++)
{
if(A[s]==0)cout<<"00000000";
else
{
counting0=7.9999-log10(A[s]);
for(i=0;i<counting0;i++)cout<<0;
cout<<A[s];
}
}
}
cout<<endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -