08/02/07 15:15:32
[1] プログラミング論
[2] ① % ./a.out n
の時、nまでの順列を生成するプログラムを作る。
1. n = atoi( argv[1] ); で引数を整数に変換
2. for( i = 0; i < n; i++ ) a[i] = i+1; としてa[]を初期化
3. perm()を完成させる。
② % ./a.out x n
の時(x,nは整数),x^{n}を計算するプログラムを作る。
x^{n} = x^{m} * x^{m} (n = 2m)
x^{n} = x * x^{m} * x^{m} (n = 2m+1)
x^{n} = 1 (n=0)
を利用して乗算回数の最小化を行うこと。
x^{n}の値と、乗算回数を出力する。
③ Ackermann関数
A(0,n) = n+1
A(m,0) = A(m-1,1) (m>0)
A(m,n) = A(m-1,A(m,n-1)) (n>0)
をするプログラムを作る。
% ./a.out m n
ただし、% ./a.out 3 12
での実行時間が0.05sec未満。
→%time ./a.out 3 12
%time ./a.out 4 x
は多分動かないのでm<=3で試すこと。
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C
[4] 2008年2/12(火)
[5] 制限は特にないです
先週はありがとうございました!今週も・・・・よろしくお願いしますm(__)m