技術士試験ナビ

技術士試験対策・テキスト・過去問題解説を発信します。

技術士第一次試験専門科目 平成25年度 Ⅲ-3

 xをn乗するべき乗関数power(x,n)をC言語で実装したい。べき乗を分解して,O(n)の計算量をO(log2(n))まで削減する実装として空欄||に入る最も適切なものはどれか。ただし,nは0以上の整数とする。

doublepower(doublex,intn){if(n==0)return1;
||

① 工n七工; doublerv=x; for(i=1;i<n;i+=1)rv犬=x;returnrv;

② ifn毛2==0:returnpower(x犬x,nI2)re七urnx犬powe工(x,n-1)

③ if(n毛2==0)returnpower(x女x,nI2);re七urnx犬power(x,n-1);

④ if(n==1)returnx; returnx犬power(x,n-1);

⑤ if(n==1)returnx; returnx犬power(x,nI2);

 

 

答え

      ③

解説

 XXX

① 工n七工; doublerv=x; for(i=1;i<n;i+=1)rv犬=x;returnrv;
XXX

② ifn毛2==0:returnpower(x犬x,nI2)re七urnx犬powe工(x,n-1)
XXX

③ if(n毛2==0)returnpower(x女x,nI2);re七urnx犬power(x,n-1);
XXX

④ if(n==1)returnx; returnx犬power(x,n-1);
XXX

⑤ if(n==1)returnx; returnx犬power(x,nI2);
XXX