Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
sanyarus22
0 / 0 / 1
Регистрация: 17.10.2012
Сообщений: 21
#1

Найти первое из чисел Фибоначчи, большее чем N - C#

18.10.2012, 09:11. Просмотров 1227. Ответов 10
Метки нет (Все метки)

Ввести целое число N > 1. Найти первое из чисел Фибоначчи, большее чем N. Последовательность чисел Фибоначчи FK (целого типа) определяется следующим образом: F1 =1, F2= 1, FK=FK-2 + FK-1, K = 3, 4, ... N.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2012, 09:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти первое из чисел Фибоначчи, большее чем N (C#):

Найти среди чисел первое, большее заданного
Добрый день знатоки Дано вещественное число "a". Найти среди чисел...

Среди последовательности чисел найти первое число, большее n
5 Задача:

Среди чисел 1;1+1/2;1+1/2+2/3;......Найти первое, большее наперед заданного числа A.
Помогите, пожалуйста, сделать задачку. Вот условие: Среди чисел...

Дан массив вещественных чисел. Найти кол-во чисел больше, чем сумма дробных частей
double mas = { 20.2500, 1.069, 1.06 }; double c = 0; ...

Вывести сначала большее из 2-х чисел, а потом меньшее
Дано два числа. Вывести сначала большое, а потом меньшое из них. (try catch)

Вывести сначала большее, а затем меньшее из двух чисел
Даны два числа. Вывести сначала большее, а затем меньшее из них.

10
ras254
72 / 72 / 10
Регистрация: 18.09.2012
Сообщений: 208
18.10.2012, 12:16 #2
Есть общая формула
http://ru.wikipedia.org/wiki/Числа_Фибоначчи

можно её использовать, попытаться...
0
Бельфегор
665 / 578 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
18.10.2012, 13:57 #3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int N = Convert.ToInt32(Console.ReadLine());
            List<int> fibonachi = new List<int>();
            fibonachi.Add(1);
            fibonachi.Add(1);
            while (fibonachi[fibonachi.Count - 1] <= N)
            {
                fibonachi.Add(fibonachi[fibonachi.Count - 1] + fibonachi[fibonachi.Count - 2]);
            }
            Console.WriteLine(fibonachi[fibonachi.Count - 1]);
        }
    }
}
0
NightmareZ
1422 / 611 / 57
Регистрация: 31.03.2009
Сообщений: 1,978
19.10.2012, 15:02 #4
C#
1
2
3
var c = new {a = 1, b = 2};
Enumerable.Repeat(0, int.MaxValue).TakeWhile(x => { c = new {a = c.b, b = c.a + c.b}; return n > c.b; }).Last();
int result = c.a;
2
andrew_w2k
323 / 323 / 90
Регистрация: 04.03.2010
Сообщений: 648
19.10.2012, 15:28 #5
NightmareZ, интересно, только небольшая поправка - в самом задании надо найти не меньшее первое, а большее первое.
0
NightmareZ
1422 / 611 / 57
Регистрация: 31.03.2009
Сообщений: 1,978
19.10.2012, 15:29 #6
Цитата Сообщение от andrew_w2k Посмотреть сообщение
NightmareZ, интересно, только небольшая поправка - в самом задании надо найти не меньшее первое, а большее первое.
Тогда:
C#
1
int result = c.b;
0
andrew_w2k
323 / 323 / 90
Регистрация: 04.03.2010
Сообщений: 648
19.10.2012, 15:31 #7
NightmareZ, ну и ещё одно - что будет если n = 2 или n = 3?
0
NightmareZ
1422 / 611 / 57
Регистрация: 31.03.2009
Сообщений: 1,978
19.10.2012, 15:34 #8
Цитата Сообщение от andrew_w2k Посмотреть сообщение
NightmareZ, ну и ещё одно - что будет если n = 2 или n = 3?
Ничего хорошего. Так же, как если, например, n = -148. Ну if'ов порасставить надо на эти случаи. Я ж концепцию показываю...
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
19.10.2012, 16:23 #9
NightmareZ, linq в таких вещах ваще зло. Читабельности нет, эффективности нет. Вопрос: зачем тогда, собственно? Разве что повыпендриваться

Бельфегор, массив зачем? Для числа фибоначчи достаточно иметь 2 числа.

Добавлено через 4 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
private static long FibonacciHigherThan(long n)
        {
            long fib_n_2 = 0, fib_n_1 = 1;
            for (int i = 1; fib_n_1 < n; i++)
            {
                var temp = fib_n_1;
                fib_n_1 += fib_n_2;
                fib_n_2 = temp;
            }
            return fib_n_1;
        }
0
NightmareZ
1422 / 611 / 57
Регистрация: 31.03.2009
Сообщений: 1,978
19.10.2012, 16:46 #10
Цитата Сообщение от Psilon Посмотреть сообщение
NightmareZ, linq в таких вещах ваще зло. Читабельности нет, эффективности нет. Вопрос: зачем тогда, собственно? Разве что повыпендриваться
Краткоть и, таки да, читабельность.
0
Бельфегор
665 / 578 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
19.10.2012, 17:25 #11
Цитата Сообщение от Psilon Посмотреть сообщение
Бельфегор, массив зачем? Для числа фибоначчи достаточно иметь 2 числа.
Ты прав, написал на скорую руку. Оптимизорать можно без конца. По ходу у вас с NightmareZ -ом завязывается научная баталия
0
19.10.2012, 17:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2012, 17:25
Привет! Вот еще темы с решениями:

Программа не может правильно определить, какое из чисел - большее
иногда бывает такая вещь using System; namespace ConsProgram2 {

Как в тексте найти количество многозначных чисел(состоящих из более чем одной цифры)
Помогите пожалуйста не могу написать программу. В тексте найти количество...

Меньшее из двух чисел заменить половиной их суммы, а большее — их удвоенным произведением
2.30. Даны действительные числа x и y, не равные друг другу. Меньшее из этих...

Меньшее из двух чисел заменить половиной их суммы, а большее - их удвоенным произведением
Даны действительные числа x и y, не равные друг другу. Меньшее из этих двух...


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

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

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