今日(2020/06/20)からアルゴリズムを勉強していこうと思う。選ばれたのはC言語です。理由は単純で今勉強中だから。メモ用として使っていくので詳しい解説はしない(というか知識がないからできない)。よく参考書にあるような数字の計算から始めるわけではないのでそこは理解していただきたい。では早速やっていこう。
環境構築に関しては以下の記事を参考にして構築した。(Windows)
※Macはわかりませんので各自で調べてください。
https://webkaru.net/clang/mingw-gcc-environments/
使用している書籍:C言語によるはじめてのアルゴリズム入門
著者:河西朝雄
ユークリッドの互除法
いつも通り詳しい解説は他の記事を参照してください。簡単に言うと最大公約数を求める手法です。
euclid.c
#include <stdio.h>
int main(void){
int m,n,k;
printf("2つの整数を入力:");
// 標準入力 &が必要
scanf("%d %d",&m,&n);
do{
k = m % n;
m = n;
n = k;
}while(k!=0);
printf("max_divisor:%d",m);
}
まとめ
標準入力をするときは「&」が必要で&がなくて挙動がおかしくなったので次からは気を付けたい。また、do~whileのところは関数にした方が保守性が高くなるのかなと思った。アドバイスがあったら是非コメントしていただきたいです!