Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2023, 13:50   #1
AlbertaHunter
Новичок
Джуниор
 
Регистрация: 05.04.2023
Сообщений: 1
По умолчанию Числа Фибоначчи на С

здравствуйте, Уважаемые программисты. Столкнулся с задачей про числа Фибоначчи.
Решил не делать стандартно через рекурсию, воспользовался формулой Бине для общего члена.
но после 47 числа машина выдает абсурдные значения. От языков программирования я далёк, поэтому прошу не быть сильно строгими ко мне.
Спасибо за понимание!
Код:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#include <math.h>

int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int N = 0;
    scanf("%d", &N);
    int M[255][255];
    int t = 0;
    int count = 0;
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            t = ((1 / sqrt(5)) * (pow(((1 + sqrt(5)) / 2), i + j) - pow(((1 - sqrt(5)) / 2), i + j)));
            M[i][j] = t;
            printf("%20d", t);
            if (M[i][j] % 2 == 0) {
                count = count + 1;
            }
        }
        printf("\n");
    }
    printf("%d", count);
}
Изображения
Тип файла: png 2023-04-05_17-45-14.png (45.4 Кб, 16 просмотров)

Последний раз редактировалось AlbertaHunter; 05.04.2023 в 14:11.
AlbertaHunter вне форума Ответить с цитированием
Старый 05.04.2023, 15:48   #2
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

формула чисел Фибоначчи


и если сначала выяснить множество Фибоначчи
например excel

= (1/КОРЕНЬ(5))*(((1+КОРЕНЬ(5))/2)^B2-((1-КОРЕНЬ(5))/2)^B2)

там пишет: # 47 = 2971215073 = 2'971'215'073
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 05.04.2023 в 15:53.
сфинкс вне форума Ответить с цитированием
Старый 05.04.2023, 17:01   #3
Steelcraft
Форумчанин
 
Регистрация: 13.03.2023
Сообщений: 111
По умолчанию

Очень похоже на то, что у Вас произошло целочисленное переполнение (то, что Вы назвали "абсурдным значением"). Число Фибоначчи с номером 48 равно 2971215073, а максимальное целое число со знаком, которое можно представить 32-битовым значением, равно 2147483647.

Замените переменные типа int на long long int, они станут 64-разрядными, и сможете двигаться дальше.
Steelcraft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Числа Фибоначчи на С++, до n = 100 SLX2002 Общие вопросы C/C++ 2 21.11.2016 15:43
числа Фибоначчи akademochka Помощь студентам 3 22.03.2012 23:45
Числа Фибоначчи vadiprog Помощь студентам 6 29.10.2011 12:08
Числа Фибоначчи zerc Помощь студентам 1 22.10.2010 19:50
Числа Фибоначчи imera Паскаль, Turbo Pascal, PascalABC.NET 8 17.01.2009 22:01