Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

アルゴリズムとデータ構造

フィボナッチ数列 C++

ただのフィボナッチ数列。いわゆる再帰ってやつですね。 #include <iostream> using namespace std; int fib(int a) { if(a <= 1) return 1; return fib(a-1) + fib(a-2); } int main() { for(int i=0; i<20; i++) { cout << fib(i) << endl; } } 結果は1 1 2 3 5 8 13</iostream>…

最小公倍数と最大公約数

よく使いますね。 #include <iostream> using namespace std; // 最大公約数 int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a % b); } // 最小公倍数 int lcm(int a, int b) { int c = a * b / gcd(a,b); return c; } int main() { int a = gcd(256, 82</iostream>…

C 最小値の探索

ただの最小値の探索です。 #include <stdio.h> #define maxnumber 10 int minimum(int user_array[]); main() { int number[maxnumber]; int index; printf("Give me nine numbers and I\'ll print them backwards \n"); for(index=0; index</stdio.h>

配列の並べ替え

ただの並べ替えです。 reverse です。 #include <stdio.h> #define maxnumber 10 void run_backwards(int user_array[]); main() { int number[maxnumber]; int index; printf("Give me nine numbers and I\'ll print them backwards \n"); for(index=0; index</stdio.h>

C++ List (STL) まとめ

C++の標準テンプレートライブラリのListをまとめてみます。begin() 要素の先頭を返す。 end() 要素の最後を返す。 push_front() 要素を先頭に追加する。 push_back() 要素を最後に追加する。 pop_front() 要素の先頭を削除。 pop_back() 要素の最後を削除。 …

C++ で簡単なキュー

ただのキューです。 #include <iostream> using namespace std; class queue{ private: int q[100]; int sloc, rloc; public: void init(); void enqueue(int i); int dequeue(); }; void queue::init() { rloc = sloc = 0; } void queue::enqueue(int i) { if(sloc==1</iostream>…

リストとサーチ C言語

リストはこういう書き方のほうがわかりやすいですね。 #include <stdio.h> #include <stdlib.h> typedef struct tagListNode { struct tagListNode *prev; struct tagListNode *next; int data; }ListNode; int main(void) { int buf; ListNode *firstnode, *lastnode, *newnode</stdlib.h></stdio.h>…

二分探索木

アルゴリズムの復習です。ただの二分探索木です。数字が大きければ右、小さければ左です。 struct node{ int Key; char info[10]; struct node *left, *right; }; struct node *root=NULL; struct node *bint_search(int target, struct node *p) { if(p==NU…

ポインタを使ったスタック C言語

ポインタを使ったスタックです。まあごく普通のスタックです。 struct cell{ char data[10]; struct cell *next; }; struct cell *stack=NULL; void push(struct cell *p) { p->next=stack; stack=p; } struct cell *pop(void) { struct cell *p; if(stack==…

キュー

普通のキューをCで書きました。基礎は大事です。ポインタの使い方にはなれましょう。 struct student { int num; char name[20]; struct student *next; }; struct student *root=NULL; //最後尾がNULL void enqueue(struct student *r) //追加する { struct…

再帰の非常に簡単な例

再帰で階乗計算です。ここでは10の階乗を求めています。階乗は、n*(n-1)*(n-2)*(n-3)・・・*(1) のあれです。 #include <iostream> using namespace std; int factorial(int n){ if (n==1) { return 1; } return n * factorial(n-1); } int main() { int data; data=</iostream>…

ソートの基礎 C言語

アルゴリズムとデータ構造の復習で、Cでちょこちょこ書いてます。ただ書いてるだけです。 #define swap(x, y){int tmp; tmp=x; x=y; y=tmp;} // シンプルなソート void simple_sort(int a[], int n) { int i, j, tmp; for(i=0; j<n; ++i){ for(j=i+1; j<n; ++j){ if(a[i]>a[j]){ swap(a[i], a[j]; } }</n;>…

線形探索 C言語 アルゴリズム

アルゴリズムをちまちま復習してます。ただの線形探索です。 #include <stdio.h> #define MAX 10 struct student { int num; char name[10]; }; struct student St[MAX]={{2, "Takagi"}, {6,"Takahasi"}, {32, "Hori"}, {10, "Azuma"}, {5, "Sasaki"}}; int Num=5; vo</stdio.h>…

C++ スタック

まあ普通にC++でスタックを書いてみただけ。基礎は重要です。 #include <iostream> #define STACK_MAX 10 double stack[STACK_MAX]; int stack_top = 0; void stack_push(double val) { if(stack_top == STACK_MAX){ // スタックが満杯 cout << "error \n"; exit(1); }</iostream>…

C/C++ バブルソート

バブルソートがどういうアルゴリズムなのかは、アルゴリズム図鑑というアプリを見るのが一番わかりやすいと思います。 #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 10 /* データの件数 */ int test[N]; void BubbleSort(void){ int i, x, end; do { flag = 0; </time.h></stdlib.h></stdio.h>…