本帖最后由 逍遙處士 于 2013-9-14 23:35 編輯 0 V/ f) `* v/ S0 s' X
: ^! C5 E: {& ^4 c0 p! G) p
: c: {( |' G1 @! t" t/ r8 i5 ?. ^
- }" T# ]0 @, q, p這是用MathCAD做的計算,程序跟一樓一樣,可見第5個也是29,就這來看樓主的程序可能有缺陷。4 M. Z7 R' P: O' {" W; H
假如齒數為57,則360*3600/57不能整除,問題是否出在這兒?
* w6 t; \+ X* s0 a' o
. ~3 n- T; _# N假設所給齒數能整除的話,不妨只考慮將第一個角度依次翻倍,代碼如下:
2 i' v! E. z3 v0 c, Q% t7 I8 `( k" v+ z( k Z2 ~
int a=0, b=0, c=0;
1 m; x9 {. ]6 c4 ^while ( a<360 )
$ _+ e% Z/ u/ ?( N$ A{
3 g; {3 U/ I* u8 Y c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60; 3 x" K+ S6 c: c e
b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60; $ T1 U5 K: B* E$ a
a=a+j;
! O& X0 i; K0 P printf("%d°%d′%d″\n",a,b,c);
- D" B R4 m3 j1 R8 U}
) Q) b8 v- D6 r8 z9 a
5 E: O+ q# S4 n8 W- M3 E不妨試一試,看下結果。
# l- S9 z& M, V; k9 o E/ A4 f" @2 @" z$ H1 t8 m% T/ c
|