题目链接:http://poj.org/problem?id=1001 题目解析:慢慢揣摩 #includeiostreamusing namespace std;int h[10002];char s[10002];int m,n,i,j,k,len,p;int mul(int h[],int k){int i;for(i=0;i=10001;i++)h[i]*=k;for(i=0;i=10001;i++){h[i+1]+=h[i]/10;h[
题目链接:http://poj.org/problem?id=1001
题目解析:慢慢揣摩
#include<iostream> using namespace std; int h[10002]; char s[10002]; int m,n,i,j,k,len,p; int mul(int h[],int k){ int i; for(i=0;i<=10001;i++) h[i]*=k; for(i=0;i<=10001;i++){ h[i+1]+=h[i]/10; h[i]%=10; } return 0; } int main(){ while(cin>>s>>n){ m=j=0; len=strlen(s); memset(h,0,sizeof(h)); h[0]=1; for(i=len-1;i>=0;i--) if(s[i]!='0')break; len=i+1; for(i=0;i<len;i++){ if(s[i]=='.') p=(len-1-i)*n; else m=m*10+s[i]-'0'; } for(i=0;i<n;i++) mul(h,m); i=10001;j=0; while(i>=0&&h[i]==0) i--; i=max(i,p-1); for(k=i;k>=0;k--){ if(k==p-1) cout<<"."<<h[k]; else cout<<h[k]; } cout<<endl; } return 0; }