Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 8
1

Фибоначи намбер - Задача

28.08.2019, 16:29. Показов 2667. Ответов 14
Метки нет (Все метки)

Вот решил задачу
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
#include <iostream>
using namespace std;
 
int factorial (int a, int b, int fact){
    if (b == a){
        cout << fact;
        return 0;
    }
    fact = fact * b;
    b++;
    factorial (a, b, fact);
    
    
}
 
int main (){
    int a, b = 1, fact = 0;
    
    cin >> a;
    fact += a;
    //cout << " Fact"<< fact << endl;
    factorial (a, b, fact);
    
    return 0;
}
Но на ютюбе чувак делал по другому. О великие программисты, что здесь обитают, помогите!

Вот ссылка https://www.youtube.com/watch?v=44y44mniCJ4&t=73s
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2019, 16:29
Ответы с готовыми решениями:

По числу Фибоначи найти его номер в последовательности Фибоначи в BigInteger
По числу Фибоначи найти его номер в последовательности Фибоначи в BigInteger. Написал для int, но...

фибоначи
найти первые N чисел Фибоначи двумя способами. С помощью рекурсии и с помощью итерации.

Фибоначи
Здраствуйте!Помогите решить задачу. Дан файл f,компоненты U0,U1,..Un которого являеться...

Фибоначи
подскажите пожалуйста, как вывести на экран первые тридцать чисел Фибоначи ны языке C++ ...

14
6500 / 4422 / 2531
Регистрация: 18.12.2017
Сообщений: 13,827
28.08.2019, 16:37 2
ameb, одну и ту же задачу можно сделать разными способами. в чём состоит Ваш вопрос ?

int для факториала лучше не применять, так как факториал - быстрорастущая функция
1
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 8
28.08.2019, 16:44  [ТС] 3
Просто в школе решал по другому, учитель говорил так "неправильно". И хочу узнать у программистов правильно ли я решил.

Добавлено через 4 минуты
Ок. Лучше double использовать?
0
6500 / 4422 / 2531
Регистрация: 18.12.2017
Сообщений: 13,827
28.08.2019, 16:45 4
Цитата Сообщение от ameb Посмотреть сообщение
хочу узнать у программистов правильно ли я решил.
как можно ответить правильно решено или нет если Вы даже условия не написали ?
1
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 8
28.08.2019, 16:46  [ТС] 5
в каком смысле условия? Имеет ввиду комментарии?
0
6500 / 4422 / 2531
Регистрация: 18.12.2017
Сообщений: 13,827
28.08.2019, 16:50 6
Цитата Сообщение от ameb Посмотреть сообщение
в каком смысле условия?
в смысле условия задачи (строки которые Вы читаете перед тем как пишете код). например:
Найти тридцатое число последовательности Фибоначчи.
1
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 8
28.08.2019, 16:58  [ТС] 7
Задачу сам решал. Никаких условий не было. 5, 6, 7 сам вводил. Выводит правильно, но в некоторых случаях бывало, что моя программа выводит ответ правильно, но не зачитывается. Там пишет ТЕСТ 2 не пройден. А условий не дает. Из за этого перестал такими сайтами пользоваться. Решил спросить
0
6500 / 4422 / 2531
Регистрация: 18.12.2017
Сообщений: 13,827
28.08.2019, 17:02 8
ameb, так всё-таки формулировку задачи можно узнать ? что именно Вы решаете ?
0
488 / 285 / 128
Регистрация: 30.10.2018
Сообщений: 1,309
28.08.2019, 17:07 9
Цитата Сообщение от ameb Посмотреть сообщение
Ок. Лучше double использовать?
для факториала?
Факториа́л — функция, определённая на множестве неотрицательных целых чисел.
А теперь подумай, нужно ли тут хоть какая-то точность после точки?

Лучше всего
C++
1
unsigned long long
Добавлено через 2 минуты
Цитата Сообщение от ameb Посмотреть сообщение
Выводит правильно, но в некоторых случаях бывало, что моя программа выводит ответ правильно, но не зачитывается. Там пишет ТЕСТ 2 не пройден. А условий не дает. Из за этого перестал такими сайтами пользоваться
Значит неправильно решил, я когда на олимпиаде был, у меня выбора небыло, я только что и делал, предотвращал ситуации которых недолжно быть (например неверный ввод).
0
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 8
28.08.2019, 17:10  [ТС] 10
Цитата Сообщение от kitsoRik Посмотреть сообщение
Лучше всего
C++Выделить код
1
unsigned long long
Точняк, забыл про это. Спасибо!
А задачу правильно решил?

Добавлено через 2 минуты
Я изучал Рекурсию. Говорили попробуй решить факториал. Вот решил.
В названии темы опечатка. (До этого про фибоначи читал). Извиняюсь, что ввел в тупик.
0
488 / 285 / 128
Регистрация: 30.10.2018
Сообщений: 1,309
28.08.2019, 17:11 11
Лучший ответ Сообщение было отмечено ameb как решение

Решение

ameb, с точки зрения ответа? Возможно да, не проверял. Но, с точки зрения реализации, нет, факториал это не то что нужно делать через рекурсию (раньше просто пример приводили на этом, но делать никакого смысла нет), ведь циклом намного проще реализовать это, хоть возможно и банально.
0
6500 / 4422 / 2531
Регистрация: 18.12.2017
Сообщений: 13,827
28.08.2019, 17:11 12
Цитата Сообщение от ameb Посмотреть сообщение
А задачу правильно решил?
Вы прикалываетесь ? откуда кто знает что Вы решаете ? ещё раз повторяю: напишите условие задачи (сформулируйте задачу).
0
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 8
28.08.2019, 17:18  [ТС] 13
Однозначно согласен. Сам удивился зачем использовать рекурсию. Но тема была рекурсия и пришлось зафигачить.

Добавлено через 2 минуты
Нужно найти факториал числа (Любого).
Ответ выходит правильный, но для уточнения решил спросить

Добавлено через 2 минуты
Просто тема была Рекурсия. Сам понимал, что проще через цикл
0
6500 / 4422 / 2531
Регистрация: 18.12.2017
Сообщений: 13,827
28.08.2019, 17:44 14
Лучший ответ Сообщение было отмечено ameb как решение

Решение

Цитата Сообщение от ameb Посмотреть сообщение
Нужно найти факториал числа (Любого).
если любого, это нужно смотреть в сторону длинной арифметики.
c типом int (учитывая что max int = 2147483647) получится подсчитать факториал для чисел до числа 12 включительно
с типом unsigned long long (max = 18446744073709551615) - для чисел до числа 20 включительно
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
21! = 51090942171709440000
22! = 1124000727777607680000
23! = 25852016738884976640000
24! = 620448401733239439360000
25! = 15511210043330985984000000
26! = 403291461126605635584000000
27! = 10888869450418352160768000000
28! = 304888344611713860501504000000
29! = 8841761993739701954543616000000
30! = 265252859812191058636308480000000
если нужно найти факториал числа больше 20 (не для всех чисел, только тех факториал которых поместится в double)
можно использовать double (но нет гарантии, что тестирующая система засчитает за правильный ответ). вариант через рекурсию:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
double F(int n)
{
    if (n==0) return 1;
    return n*F(n - 1);
    
}
 
int main()
{
    int N;
    
    cout << "N="; cin >> N;
        
    cout << F(N) << "\n";   
    
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 28.08.2019
Сообщений: 8
29.08.2019, 12:33  [ТС] 15
Спасибо!
Цитата Сообщение от Yetty Посмотреть сообщение
return n*F(n - 1);
Можете объяснить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2019, 12:33

Числа фибоначи
условие: Последовательность чисел Фибоначчи определяется следующим образом: F1 = F2 = 1, Fn = Fn-1...

числа Фибоначи
1)Определить 40-е число Фибоначи 2)поиск 1-го числа Фибоначи больше заданного числа m...

Числа фибоначи
Написать программу для вычисления н-ного числа фибоначи. Я написал рекурсией. Но мне почему-то надо...

Число Фибоначи.
Помогите решить задачу ... или хотя бы подскажите алгоритм решения.... Числа Фибоначи строятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.