アプリ版:「スタンプのみでお礼する」機能のリリースについて

http://momonga.t.u-tokyo.ac.jp/~ooura/fftman/に載っている、http://momonga.t.u-tokyo.ac.jp/~ooura/fftman/ftm …の「リスト1.2.3-2. 任意の長さの FFT」プログラムですが、途中で再帰処理をしているところを
なくして、forで記述したいのですが、どのようにすればいいのでしょうか??将来的にjavaでも動かしたいので「&tmpr[r], &tmpi[r]」というポインタを使わない形式にしたいんです。
 ソースを貼り付けると文字列オーバーになるので文章のみにさせていただきます。

A 回答 (1件)

何故、再帰処理を避けたいのかわかりませんが


(Javaでも再帰可能)
そうしたくないならmallocなりC++ならvectorで動的に変数を
確保しておく(積み上げる)必要があります。
全体をwhile文で囲んで
自分で再帰しているのと同じように変数を積み上げていくわけです。
とりあえずC++のvectorを使ってはどうですか。
javaにもvectorはありますし。
http://www.kumei.ne.jp/c_lang/cpp/cpp_64.htm

※ちなみにこのプログラムを再帰しないように書くと
かなり、見にくいコードになる気がします。

>「&tmpr[r], &tmpi[r]」
javaに関しては配列は参照渡しになるので
あまりスマートなやり方ではないですが
tmpr[r]である部分を一端0から始まる配列tmpr2にコピーし
tmpr2を渡す事で解決できるはずです。
その辺はjavaの方で質問すればもっと良い方法が
あるかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!