我在示例中使用的是 Math.PI,所以它是双精度的。这是一个简单的代码,但有一点我不知道该怎么做:
我希望代码使用用户给出的乘数值计算X
a sin
orcos
函数的基本周期。a
该n
值被初始化n=1
为一个整数值。
如果 的结果(2 * pi * n)/a = X
低于pi
则n
应该增加,并且应该继续直到该数字是 的倍数pi
,然后打印结果。
只是为了澄清:是函数中a
的乘数或像这样:x
sin
cos
cos(ax)
sin(ax)
我遇到的麻烦是确定数字是否是的倍数pi
(假设它已经大于pi
,即)。
据我所知,这是不完整的。
public void printSinusoidalPeriod(double multiplier /* this would be `a` */){
double pi=Math.PI;
double p = (2 * pi * (double) n) / multiplier;
while(p<pi){
if(n%pi==0){
n=n+1;
System.out.println(n);
p = (2 * pi * (double) n) / multiplier;
}
}
p= (double)Math.round(p * 100) / 100;
System.out.println("period of function is = " + p + " and n = " + n);
}
似乎它没有进入 if 语句并被困在 while 循环中