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 |
Re:高精度In Reply To:Re:高精度 Posted by:gemenhao at 2007-02-08 23:35:02 > 考虑到数据比较小,可以不用高精度,呵呵 > int main() > { > int N, D; > double maxn = pow(2.0, 62.5); > while (scanf("%d %d", &N, &D) && (N != 0 || D != 0)){ > double max = pow(N, D); > if (max < maxn){ > printf("%I64d\n", pown(N, D)); > continue; > } > __int64 a1 = pown(N, D / 2); > __int64 a2 = pown(N, D - D / 2); > __int64 a1h = a1 / base, a1l = a1 % base; > __int64 a2h = a2 / base, a2l = a2 % base; > __int64 low = a1l * a2l; > __int64 hih = a1h * a2h * base + a1h * a2l + a2h * a1l + low / base; > printf("%I64d", hih); > printf("%09I64d\n", low % base); > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator