-
Notifications
You must be signed in to change notification settings - Fork 0
/
Fibonacci_by_Yura.c
65 lines (59 loc) · 4.84 KB
/
Fibonacci_by_Yura.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// ##################################################
// # Made by Yura Zosia <YuraZosia@gmail.com> #
// # Для запуску пишемо в консолі: #
// # make Fibonacci_by_Yura #
// # ./Fibonacci_by_Yura #
// ##################################################
#include <cs50.h>
#include <stdio.h>
#include <stdlib.h>
// ========= Функція очистки Екрану консолі перед спрацюванням програми ========= //
void clrscr()
{
system("@cls||clear");
}
// =============== ініціалізація =============== //
int main(void)
{
// =============== створюємо константи і перемінні для роботи =============== //
#define RED "\033[1;31m" // escape-послідовність для червоно кольору
#define YELLOW "\033[1;33m" // escape-послідовність для жовтого кольору
#define WHITE "\033[1;37m" // escape-послідовність для білого кольору
#define GREEN "\033[1;32m" // escape-послідовність для зеленого кольору
#define MAX_VALUE 4000000 // максимальне число в послідовності для нашої задачі
int prev_num = 1; // передостаннє число послідовності
int last_num = 2; // крайнє число послідовності
int result = 0; // перемінна в яку будемо записувати кількість чисел які діляться на 2
int sum = 0; // контроль суми двох останніх чисел
clrscr(); // очищаємо консоль
// =============== виводимо надпис =============== //
printf("\n%s##################################################################################\n", RED);
printf("# %sMade by Yura Zosia %s<YuraZosia@gmail.com>%s #\n", YELLOW, GREEN, RED);
printf("# %sРозрахунок кількості чисел які діляться на 2 в послідовності Фібоначчі%s #\n", WHITE, RED);
printf("# %sГоловні умови в завданні починається з чисел \"1\" та \"2\", і послідовність%s #\n", WHITE, RED);
printf("# %sне перевищує значення \"4000000\"%s #\n", WHITE, RED);
printf("##################################################################################%s\n\n", WHITE);
printf("Послідовність Фібоначчі від 1 до %d: ", MAX_VALUE);
// =============== центр обрахунків =============== //
while (prev_num < MAX_VALUE) // цикл триває поки результат послідовності, а точніше перостаннє число послідовності буде не більше 4000000 (4M)
{
if (prev_num % 2 == 0 && prev_num < MAX_VALUE) // перевіряємо чи немає остатку ділення на 2 і крайнє число не перевищує 4M, якщо так
{
result ++; // то рахуємо (додаємо +1) в результат
printf( "%s[%i]%s ", YELLOW, prev_num, WHITE); // і виводимо парні числа жовтим кольором
}
else // а якщо число непарне
{
printf( "[%i] ", prev_num); // виводимо його білим кольором
}
sum = prev_num + last_num; // вираховуємо нове крайнє число
prev_num = last_num; // назначаємо передостанньому числу крайнє поперернє
last_num = sum; // записуємо в крайнє число результат суми (нове крайнє число)
}
// =============== виводимо результат =============== //
printf("\n---------------------------------------------------\n");
printf("Кількість парних чисел (ті, що діляться на 2): - ");
printf("%s%i\n\n", YELLOW, result); // виводимо сам результат (перемінна result) жовтим кольором
printf("CS50 2019 LVIV\n\n");
printf("%s", WHITE); // скидаємо вивід тексту в консолі на білий колір
}