백준 알고리즘 1003번 : 피보나치 함수
#include <stdio.h>
void fibo(int n)
{
int fib[41][2] = { 0 };
int i;
fib[0][0] = 1;
fib[1][1] = 1;
i = 1;
while (++i <= n)
{
fib[i][0] = fib[i - 1][0] + fib[i - 2][0];
fib[i][1] = fib[i - 1][1] + fib[i - 2][1];
}
printf("%d %d \n", fib[n][0], fib[n][1]);
}
int main(void)
{
int test;
int n;
scanf("%d", &test);
for (int i = 0; i < test; i++)
{
scanf("%d", &n);
fibo(n);
}
return 0;
}
백준 알고리즘 1904번 : 01타일
#include <stdio.h>
int tile(int n)
{
int bef = 1, aft = 2, ret = 0;
int i = 2;
if (n == 1)
return bef;
if (n == 2)
return aft;
while (++i <= n)
{
ret = (bef + aft) % 15746;
bef = aft;
aft = ret;
}
return (ret);
}
int main(void)
{
int n;
scanf("%d", &n);
printf("%d", tile(n));
return 0;
}
백준 알고리즘 1932번 : 정수 삼각형
#include <stdio.h>
int tri[500][500];
int maximum(int n)
{
int max = 0;
printf("%d\n", tri[0][0]);
for (int i = 1; i < n; i++)
{
for (int j = 0; j <= i; j++)
{
if (j == 0)
tri[i][0] += tri[i - 1][0];
else if (j == i)
tri[i][i] += tri[i - 1][i - 1];
else
tri[i][j] += (tri[i - 1][j - 1] >= tri[i - 1][j]) ? tri[i - 1][j - 1] : tri[i - 1][j];
printf("%d ", tri[i][j]);
}
printf("\n");
}
for (int idx = 0; idx < n; idx++)
if (tri[n - 1][idx] > max)
{
max = tri[n - 1][idx];
printf("max: %d\n", max);
}
return (max);
}
int main(void)
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
for (int j = 0; j <= i; j++)
scanf("%d", &tri[i][j]);
printf("%d", maximum(n));
}