| ||||||||||
| 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 | |||||||||
咳咳随手贴(sb题目= =#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define ql(a) memset(a,0,sizeof(a))
int sum[100005],pd,a[100005],b[100005];
void mul(int a[],int b[])
{
int i,j,k;
sum[0]=a[0]+b[0]-1;
for (i=1;i<=a[0];i++)
for (j=1;j<=b[0];j++){
sum[i+j-1]+=a[i]*b[j];
}
for (i=1;i<=sum[0];i++){
if (sum[i]>9) {sum[i+1]+=sum[i]/10;sum[i]%=10;}
if (sum[sum[0]+1]) sum[0]++;
}
//for (i=sum[0];i>=1;i--) cout<<sum[i];cout<<endl;
for(i=0;i<=sum[0];i++) b[i]=sum[i];
}
void print1(int asum[])
{
int qd=0;
for (int i=asum[0];i>=1;i--) {if (asum[i]!=0) qd=1;
if (qd) cout<<asum[i];}
cout<<endl;
}
void print2(int bsum[])
{//cout<<bsum[0]<<" "<<pd<<endl;
int qd0=0,hd0=0,point=0,jb=1;
for (int i=1;i<=pd;i++){
if (bsum[i]!=0) point=1;
if (!point) bsum[i]=-1;
}int ttt=1;if (bsum[pd]==-1) jb=0;
for (int i=bsum[0], j=1;i>=1;i--,j++) {//if (bsum[0]-j==pd) {cout<<'.';point=1;}
ttt=1;
if (i>pd&&bsum[i]!=0) qd0=1;
if (i>pd&&bsum[i]==0&&qd0==0) ttt=0;
if (bsum[i]<0) continue;
if (ttt) cout<<bsum[i];
if (bsum[0]-j==pd&&jb) {cout<<'.';point=1;}
}cout<<endl;
}
int main()
{
int n,m,i,j,k,t,p;
char s[10005];
while(cin>>s>>n){ql(a),ql(b),ql(sum);
k=0;pd=-1;b[0]=b[1]=1;
for (i=strlen(s)-1;i>=0;i--){
if (s[i]=='.') {pd=strlen(s)-i-1;continue;}
a[++k]=s[i]-'0';
}
a[0]=k;
for (i=1;i<=n;i++){ql(sum);
mul(a,b);
}
if(pd==-1) print1(b);
else {pd*=n;print2(b);}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator