์๋ ํ์ธ์ modernAlchemist ์ H ์ ๋๋ค. ์ค๋์ ํผ๋ณด๋์น ์์ด์ ํ์ด๋ณด๊ฒ ์ต๋๋ค.
ํผ๋ณด๋์น ์์ด์ด๋ F0โ=0, F1โ=1, Fn+2โ=Fn+1โ+Fnโ ์ด๋ค. ์ด๋ ์ดํญ๊ณผ ๊ทธ ๋ค์ ํญ์ 0๊ณผ 1์ด ์๋ ์ซ์
๋๊ฐ๋ฅผ ์ค์ ํ๊ฒ ๋๋ฉด ๋ฃจ์นด์ค ์์ด์ด ๋๋ฏ๋ก ์ฃผ์ํด์ผํ๋ค.
์๋ฅผ ๋ค์ด 16๋ฒ์งธ ํญ๊น์ง๋ง ๋์ดํด ๋ณด์๋ฉด
(0), 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987 ์ด๋๋ค.
int fibo(int n) {
int result;
if (n == 0) {
result = 0;
}
else if (n == 1) {
result = 1;
}
else {
result = fibo(n - 1) + fibo(n - 2);
}
return result;
}
์ฌ๊ท ํจ์์ ํํ๋ก ํํ์ ํด์ค ์ ์๋ค.
๋ง์ฝ ์ด๊ฒ ์ด๋ ต๋ค๋ฉด ์๋์ ๊ฐ์ ํํ๋ก ๋ฐ๋ณต๋ฌธ์ผ๋ก๋ ํํ์ด ๊ฐ๋ฅํ๋ค.
int fn_2 = 0, fn_1 = 1, fn;
int start = 2, index;
if (n == 0) {
return 0;
}
else if (n == 1) {
return 1;
}
else {
for (index = 2; index <= n; index++) {
fn = fn_1 + fn_2;
fn_2 = fn_1;
fn_1 = fn;
}
}
ํด๋น ์์ main ํจ์์ ํํํด๋ณธ๋ค๋ฉด
//์ฌ๊ท์ ์ธ ์ ์ ํผ๋ณด๋์น ์์ด
// fnI = fn-1 + fn-2
//f0 = 0
//f1 = 1
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int fibo(int n);
int forfibo(int n);
int main(void) {
int result = 0;
result = fibo(10);
printf("10๋ฒ์งธ ํผ๋ณด๋์น ์์ด =%d", result);
printf("\n");
for (int i = 10; i < 11; i++) {
result = forfibo(i);
printf("%d", result);
}
return 0;
}
// n >= 2
int forfibo(int n) {
//fn = fn-1 + fn-2
// n f0 + f1 -> f2
// f1 + f2 -> f3
// f2 + f3 -> f4
int fn_2 = 0, fn_1 = 1, fn;
int start = 2, index;
if (n == 0) {
return 0;
}
else if (n == 1) {
return 1;
}
else {
for (index = 2; index <= n; index++) {
fn = fn_1 + fn_2;
fn_2 = fn_1;
fn_1 = fn;
}
}
return fn;
}
int fibo(int n) {
int result;
if (n == 0) {
result = 0;
}
else if (n == 1) {
result = 1;
}
else {
result = fibo(n - 1) + fibo(n - 2);
}
return result;
}
'์๊ณ ๋ฆฌ์ฆ ํ์ด > ์ด๋ชจ์ ๋ชจ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ๋์ฒด๊ธฐ์ ์ ๋ ๊ฑฐ๋์ฐ๋งฅ ALTERA ์ XILINX์ ๋ํ์ฌ (0) | 2020.05.06 |
---|---|
CRC๋? (0) | 2020.04.29 |
[c์ธ์ด]๋ค๋ชจ ์ถ๋ ฅํ๊ธฐ (0) | 2020.04.24 |
[c์ธ์ด] ์ฌ๊ทํจ์ ํฉํ ๋ฆฌ์ผ ์๊ณ ๋ฆฌ์ฆ (0) | 2020.04.24 |
[c์ธ์ด] ํ๋ ฌ ๊ณฑ์ ์ ๋ ฅํด์ ์ถ๋ ฅํ๊ธฐ (0) | 2020.04.19 |