本帖最后由 逍遥处士 于 2013-9-14 23:35 编辑
% p1 n, H/ y' n8 B3 Z$ _) W: L* d$ l
, t# r- `1 w* ?% l& W
# Q- T$ J* g5 b, {
这是用MathCAD做的计算,程序跟一楼一样,可见第5个也是29,就这来看楼主的程序可能有缺陷。# X1 \% H' @9 g: y/ V
假如齿数为57,则360*3600/57不能整除,问题是否出在这儿?+ v1 g u9 `; c/ S- M& }" q
$ _* P% \5 K- O0 P3 f假设所给齿数能整除的话,不妨只考虑将第一个角度依次翻倍,代码如下:
3 c& i8 N2 W4 k# ]/ o. B# H$ N
5 m& J- O& r9 t1 S0 y4 @3 |9 jint a=0, b=0, c=0; 0 i/ a4 v1 Q! o7 @" ^
while ( a<360 )+ `- n5 L2 A( q3 |0 F
{
& }8 B) F: Z8 ~9 Z v+ z: q, \2 R c=(c+s)%60; if ( (c+s)>=60 ) b=(c+s)/60; - [9 `( Q- A7 U1 {; w
b=(b+f)%60; if ( (b+f)>=60 ) a=(b+f)/60; 0 d; e/ w Y/ D- P
a=a+j;
l) ~! k5 `* w) D5 ~. i printf("%d°%d′%d″\n",a,b,c);* ~9 ~6 ^/ Y6 z( X& _7 d
}
% Z7 I d- ]4 [# Z g; j. i+ H( S' C# H- G, q! x9 ?
不妨试一试,看下结果。
4 a; s$ M5 i) H+ `
2 `3 Q7 q+ ]: ~4 ?" ?2 c |