从时间复杂度的方面考虑
你程序的时间复杂度至少是:100x90x100(这个数在你的程序中不定,这里取了个大概数)x600x100
=5400000000(8个0)是多大啊?????(5亿多)你运行一下就可以知道要多少时间了
穷举法是个好算法?穷举法只对小规模的数字运算才实用
如果题在限制一些条件,比如度数只能为整,t为整数就比较好写了
我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
for(v=1.0;v<2.0;v+=0.01) //这个还算正常 for(a=0.0001;a<pi/2;a+=0.01*pi) //角度看不懂 for(t=600;t<1200;t+=0.01) //这里好像可以以1为单位递增吧
π是等于180度,你每次都加0.01*3.1415926,即你每次加的度数是π/100 即180/100=1.8度,你每次加的度数已经是1.8度了,何必从0.0001开始呢? 每次加一度应该是0.018*π = 180/180 = 1,且应该从1度开始即a = 0.018
其实我也是糊里糊涂的,请高手指点!
[此贴子已经被作者于2004-07-24 15:21:41编辑过]
你程序的时间复杂度至少是:100x90x100(这个数在你的程序中不定,这里取了个大概数)x600x100=5400000000(8个0)
穷举法是个好算法?穷举法只对小规模的数字运算才实用
看不懂你的时间复杂度怎么取的,why not用数量级? 一个if是log2n,两个就是2*log2n,三个for,最深一层是600*100,次层为3.1415926*100, 最表面的一层是100,这样是全部乘起来得到时间复杂度……麻烦呢!
另外,你说穷举法不行,可以给出更好的算法吗? 不过就算使用递归,时间复杂度也差不多,而且空间复杂度更大! 这题的省内存省时间的方法谁能给出?
收回我以上的话!!!
斑竹太厉害了,时间复杂度的确就是5400001,在这个附近……
[此贴子已经被作者于2004-07-25 10:19:52编辑过]