【課題提出】C言語でべき乗のプログラムをシンプルに書いてみた

 


課題提出などで、長いコードより短いコードのほうが提出が楽とされる場合があります。今回は「power」関数に相当するコードです。いわゆるべき乗を効率の良いループで計算するプログラムです。

  1. #include<stdio.h>
  2. main(){
  3.     int a,n,v;
  4.     scanf("%d%d",&a,&n);
  5.     for(v=1;n>0;v*=n%2?a:1,a*=a,n/=2);
  6.     printf("%d\n",v);
  7. }

以下がプログラム本体です。非常にシンプルで分かりやすいです。もちろん、アルゴリズム的にも洗練されており、単純に掛け算を乗数だけ繰り返すものでは有りません。

ただし、組み込み型のint変数を使っているので巨大な数はオーバーフローしますので注意です。 一応 2の30乗まで計算できます。

2

30

1073741824

このような計算結果です。

クラウドを使わずにバックアップが安心 ROBOCOPY と バックアップの習慣化

 皆さん、ファイルのバックアップは作成していますか? 私が聞いた限りでは「誰もやっていない」というのが正直なところです。ただ、そこまでパソコンというデバイスを信用しているのは怖いところです。 「良い道具は一生物」という言葉があります。実際、工具類は良いものを手に入れれば一生涯使え...