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 |
谁能帮我测测啊?大家发的bt数据都试过了,可就是WA#include <iostream> #include <string> #include <vector> using namespace std; vector<int> expDispose(vector<int> , int ); vector<int> mul(vector<int> , vector<int> ); int main() { vector<string> R; string S; int point ; vector<int> n; int i,j ,exp,flag = 0; while(cin >> S >> exp) { for ( i = 0;i < 6; i ++ ) { if( (S[ i ] < 0x30 || S[ i ] > 0x39 ) && S[ i ] != '.' ) { flag = 1; break; } } if (flag == 0) { R.push_back(S); n.push_back(exp); } else break; } vector<string>::iterator iterR = R.begin(); vector<int>::iterator iterN = n.begin(); for ( ; iterR != R.end(); ++ iterR , ++ iterN ) { point = 0; vector<int> result(6 * (*iterN)); vector<int> intR(6) ; int n0 =1; if(*iterN == 0) cout << n0; i = 0; while (i < 6 && (*iterR)[ i ++ ] != '.') ; if ( i == 6) j = 5; else j = 4; for ( i = 0; i < 6; i ++ ) { if( (*iterR)[ i ] != '.' ) { intR[ j ] = (*iterR)[ i ] - 0x30; j --; } else point = 5 - i; } result = expDispose(intR, *iterN); j = point * (*iterN) ; if( point == 0) { i = 5 * (*iterN) - 1; } else i = 6 * (*iterN) - 1; while (result[ i ] == 0 && i > j ) i --; int end = 0 ; while (result[ end ] == 0 && end < j) end ++; for(;i >= end; i --) { cout << result[ i ]; if (i == j && end != j) cout << "."; } cout << endl; } return 0; } vector<int> mul(vector<int> v1, vector<int> v2) { int jinwei; int i,j; vector<int> result(v1.size() + v2.size()); int t1 = v1.size() - 1; while(v1[ t1 ] == 0) t1 -- ; int t2 = v2.size() - 1; while(v2[ t2 ] == 0) t2 --; for ( i = 0; i <= t1; i ++ ) { jinwei = 0; for ( j = 0 ;j <= t2 ; j ++) { int x = v2[ j ] * v1[ i ] + jinwei + result[ j + i ]; result[ j + i ] = x % 10; jinwei = x / 10; } if(jinwei != 0) result[ j + i ] = jinwei; } return result; } vector<int> expDispose(vector<int> R, int n) { vector<int> result(R.size() * n); if (n >= 2) { if (n % 2 == 1) result = mul(R,expDispose(R,n-1)); else result = expDispose(mul(R,R), n / 2); } else result = R; return result; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator