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<math.h> using namespace std; int pow1(int n,int m) { int i, sum; sum = 1; for(i = 0;i <m;i++) sum = sum *n; return sum; } int main() { char s1[10]; int n,m1,m2,i,j,flg = 0,s; while(cin>>s1>>n) { m1 = 0; int a[300] = {0}; m2 = strlen(s1); s = 0; for(i = 0,j = m2-1;j>=0;j--) //字符串小数整数 { if(s1[j]!='.') { if(s1[j] !='0'||i!=0) { s = s + pow1(10,i)*((int)s1[j] - 48); i++;} } } if(strchr(s1,'.')!=NULL) // 求小数点的位数 { m1 = strchr(s1,'.') -s1; m1 = i -m1; } else m1 = 0; a[0] = 1; //求N次方 for(i = 0; i< n;i++) { for(j = 0;j<300;j++) a[j] = a[j] * s; for( j = 0; j < 299;j++) { a[j+1] = a[j]/100+a[j+1]; a[j] = a[j] %100; } } flg = 0; //输出整数部分 int flg1 = 0; for(i = 299;i>=(m1*n)/2+1;i--) { if(a[i]!=0) flg = 1; if(flg ==1&&flg1==0){ cout << a[i]; flg1 = 1; flg = 2; } else if( flg1 == 1){ if(a[i]>=10) cout << a[i]; else cout << '0' << a[i]; } } if((n*m1)%2==0) //输出小数点 { if(a[i]!=0) flg = 1; if(flg ==1&&flg1==0){ cout << a[i]; flg1 = 1; flg = 2; } else if( flg1 == 1){ if(a[i]>=10) cout << a[i]; else cout << '0' << a[i]; } if(i>0) cout << '.'; } else { if(a[i]/10 != 0) cout << a[i]/10; cout <<'.'; cout << a[i]%10; } i--; //输出小数部分 for(;i>=0;i--){ if(a[i]>=10) cout << a[i]; else cout << '0'<< a[i]; } 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