私の例では Math.PI を使用しているため、double です。これは単純なコードですが、どうすればよいかわかりません。
ユーザーが指定した乗数値を使用して、関数または関数の基本周期を計算するコードがX
必要です。値は で初期化され、整数値です。sin
cos
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 ループに巻き込まれてしまっているようです