題目是:用一個輪盤纏布,輪盤的直徑是89,布的厚度為0.5(即輪盤每轉1圈直徑增加1,不考慮布與布之間的間隙) ,每次轉動輪盤要使布向前走320(然後在布上印花這個動作可以不考慮)然後再走320(再印花) ,即每次使布走320, 鍵盤輸入N輸出第N次時需要輪盤轉過的角度(精確到1度即可)
我用VB寫的,你改成C沒問題吧:tmp表示步長,就是第幾次停
Function getA(ByVal Tmp As Integer) As Double
Dim PI As Double
PI = Atn(1) * 4
Dim L As Double
L = Tmp * 320
Dim n As Integer
n = Int(Sqr(177 * 177 + 8 * L / PI) / 2 - 177 / 2)
Dim leftL As Double
leftL = L - (89 * PI * n + n * (n - 1) * 0.5 * PI)
Dim a As Double
a = leftL / (44.5 + n * 0.5) * 180 / PI + n * 360
getA = a
End Function
另一外問題相同答案