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 |
个人编的程序,觉得没毛病,为什么WA#include <iostream> #include <cstring> #include <string> using namespace std; string s; int n; class lint { private: int a[100]; int _10fu; int n; int begin; bool isint; void clean() { while(a[n]==0&&n>0) n--; int i=1; while(a[i]==0) i++; if(i>_10fu) isint=true; while(a[begin]==0&&begin<=_10fu){ begin++; } } public: lint() { ; } lint(string s) { begin=1; isint=false; memset(a,0,sizeof(a)); n=s.size()-1; _10fu=n-s.find('.'); if(s.find('.')!=-1) { for(int i=0,j=0;i<=n;i++) { char ch; ch=s[i]; if(ch=='.') continue; a[n-j]=ch-'0'; j++; } } else { _10fu=0; n++; for(int i=0;i<n;i++) { a[n-i]=s[i]-'0'; } } clean(); } void mul(const lint &x,const lint & y) { int b[101]; memset(b,0,sizeof(b)); n=x.n+y.n; for(int i=1;i<=x.n;i++) for(int j=1;j<=y.n;j++) { b[i+j-1]+=x.a[i]*y.a[j]; } for(int i=1;i<=n;i++) { b[i+1]+=b[i]/10; b[i]%=10; } for(int i=1;i<=n;i++) { a[i]=b[i]; } _10fu=x._10fu+y._10fu; clean(); } void show() { if(n==0) cout<<0; for(int i=max(n,_10fu);i>=begin;i--) { if(i==_10fu) {if(!isint) cout<<'.'; else break; } cout<<a[i]; } } }; int main() { while(cin>>s>>n) { lint a,ans; a=s; ans=s; for(int i=2;i<=n;i++) { ans.mul(ans,a); } ans.show(); 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