FC2ブログ

節約記法「無駄遣いをしないC++の記述」

C++で無駄の無い記述方法を・・。
まぁ美しく、スマートに、メモリの無駄をなくしてね。
私が知る限りは、これが限界・・orz

分かりやすい正規表現のため
iso646.hとiomanipのヘッダファイルをインクルードします。


1.関数に繰り返し用いるときは再帰コール
2.一時的に使う変数はstaticをつける
3.関数にinlineをつけて戻り値の最適化
4.メイン関数で使う自動変数は、new演算子
(C言語でいうmalloc関数)

cinから値を入力要求して
try{・・・}catch(・・・){・・・}
つかって、例外処理つけても
なかなか乙なものだ。


#include <iostream>
#include <iso646.h>
#include <iomanip>

using namespace std;

typedef unsigned int uint;


//組み合わせを求める
inline uint Combination(uint n,uint r){
if(r==0 or r==n)
return 1;
else if(r==1)
return n;
else
return (Combination(n-1,r-1)+Combination(n-1,r));
}

//ユークリッドの互除法
inline uint Gcd(uint x,uint y){
if(x>y)
return Gcd(x-y,y);
else if(x<y)
return Gcd(x,y-x);
else
return x;
}

int main(){
uint *a = new uint (8);
uint *b = new uint (4);
uint *aa = new uint (1038);
uint *bb = new uint (234);
static uint c;
static uint cc;

c=Combination(*a,*b);
cc=Gcd(*aa,*bb);

cout<<dec<<c<<endl;
cout<<dec<<cc<<endl;

delete a;
delete b;
delete aa;
delete bb;

return 0;
}

出力結果は、
組み合わせが70
互除法が6
とでてきます。

組み合わせとユークリッドの互除法は、
自分なりに考えてみました。

あってるかどうかなんてしらね^^
そこは、私の数学力次第
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

ぶろぐかんりしゃ

SmartWoods
最近MoEは・・・
一休み

***** ひとこと *****

MoEの後継ともいわれる
Resonance gamez
完全スキルMMOが
気になるところ



********************


↓2016/3/26更新
My MoE









**********

NEWとらっくばっく
あーかいぶ
かてごりー
リンク
ぶろぐないけんさく
RSSふぃーど
おともだちになろ

この人とブロともになる