| ||||||||||
| 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 | |||||||||
转成 double 的时候丢失了精度?In Reply To:我用的也是经典的求面积的方法,可是怎么会错呢 还请高人指点一二 Posted by:bingbing at 2009-02-15 10:22:14 > #include <iostream>
> #include <cmath>
>
> using namespace std ;
>
> struct Point
> {
> __int64 x ;
> __int64 y ;
> };
>
> char step ;
> Point next ;
> __int64 area ;
>
> void solve()
> {
> Point tmp = next ;
>
> switch(step)
> {
> case'1': next.x += -1 ; next.y += -1 ; break ;
> case'2': next.y += -1 ; break ;
> case'3': next.x += 1 ; next.y += -1 ; break ;
> case'4': next.x += -1 ; break ;
> case'6': next.x += 1 ; break ;
> case'7': next.x += -1 ; next.y += 1 ; break ;
> case'8': next.y += 1 ; break ;
> case'9': next.x += 1 ; next.y += 1 ; break ;
> }
>
> area += tmp.x*next.y-next.x*tmp.y ;
>
> }
>
> int main()
> {
> int n ;
>
> cin >> n ;
>
> while( n-- )
> {
> next.x = next.y = 0 ;
> area = 0 ;
> while( cin >> step )
> {
> if(step=='5')
> {
> break ;
> }
> solve() ;
> }
> cout << abs(area/2.0) << 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