本帖最后由 逍遙處士 于 2013-9-14 23:35 編輯
8 ~( `- G# ]2 ?, i4 x x5 n% W% ~1 \/ j+ u
7 @, S. J; U7 _* S
7 `/ V6 u q2 X' o* l這是用MathCAD做的計算,程序跟一樓一樣,可見第5個也是29,就這來看樓主的程序可能有缺陷。
' t' E, _7 r, d) D7 k: e( K8 d假如齒數為57,則360*3600/57不能整除,問題是否出在這兒?: @4 i9 H: ]$ ^) u4 [9 x( J# w, u, S+ y
* G/ |0 `* a Q" C假設所給齒數能整除的話,不妨只考慮將第一個角度依次翻倍,代碼如下:
) w. y3 T( J! ?6 A" [& P& Y. _1 }( F4 H9 Q* Q$ L
int a=0, b=0, c=0;
" S8 C, [1 s4 e0 P# E" Xwhile ( a<360 )! \8 B0 [" y1 X- K8 _: \$ q9 A
{
9 Z0 E! C. _/ g* C c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60;
2 S2 O5 M8 k0 p b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60;
: c0 W+ l L0 ]% ?1 p a=a+j;7 w+ ?5 r: v2 t: C% {
printf("%d°%d′%d″\n",a,b,c);
- F/ G; j% U7 g* o* R" @) c7 B}
- x" U' o' l+ K- b9 g: J$ m. F5 ~! |' y& W ~& a
不妨試一試,看下結果。: a- R! |( y& L5 k: v
% z7 `8 s/ r: V, e
|