Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.09.2023
Сообщений: 20

Найти последнюю цифру n-го числа Фибоначчи

28.09.2023, 19:40. Показов 1368. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано число 1≤n≤107, необходимо найти последнюю цифру n-го числа Фибоначчи.
Числа Фибоначчи растут очень быстро, поэтому при их вычислении нужно быть аккуратным с переполнением. В данной задаче, впрочем, этой проблемы можно избежать, поскольку нас интересует только последняя цифра числа Фибоначчи: если 0≤a,b≤ — последние цифры чисел Fi и Fi+1 соответственно, то (a+b)mod10 — последняя цифра числа Fi+2.)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string s = Console.ReadLine();
double kol=Convert.ToDouble(s);
string f0 = "01";
if (kol > 2)
{
    for (int i = 1; i < kol; i++)
    {
        int f1 = f0[-2];
        int f2 = f0[-1];
        int f3 = f1 + f2;
        f0 = Convert.ToString(f2) + Convert.ToString(f3);
    }
    Console.WriteLine(f0[-1]);
}
else
{
    Console.WriteLine("1");
}
при входе в цикл не работает, выдает ошибку. Что не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.09.2023, 19:40
Ответы с готовыми решениями:

Вывести вначале последнюю цифру числа (единицы), а затем – его среднюю цифру (десятки)
Дано трёхзначное число. Вывести вначале его последнюю цифру (единицы), а затем – его среднюю цифру (десятки). Надо чтобы была ещё...

Вывести вначале последнюю цифру числа (единицы), а затем — его среднюю цифру (десятки)
Помогите решить на C# Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем — его среднюю цифру (десятки).

По последней цифре числа определить последнюю цифру куба этого числа
По последней цифре заданного числа определить последнюю цифру куба этого числа

20
3258 / 3276 / 556
Регистрация: 17.02.2019
Сообщений: 5,185
28.09.2023, 19:44
Цитата Сообщение от Pandocka Посмотреть сообщение
выдает ошибку
вас строки, int f1 = f0[-2]; и int f2 = f0[-1]; не смущают, если f1 это целочисленное, а сравниваете с f0 а это у нас что, а да строковая(string f0 = "01"
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
28.09.2023, 19:49
Pandocka, а почему kol должна быть double?
Цитата Сообщение от Pandocka Посмотреть сообщение
f0 = Convert.ToString(f2) + Convert.ToString(f3);
и это что за х...?

Добавлено через 57 секунд
Цитата Сообщение от Pandocka Посмотреть сообщение
int f1 = f0[-2];
про это вообще молчу
1
3258 / 3276 / 556
Регистрация: 17.02.2019
Сообщений: 5,185
28.09.2023, 19:54
Цитата Сообщение от Pandocka Посмотреть сообщение
f0[-2]
кричу не могу, индекс почему -2. Строки начинаются с индекса ноль и далее положительные.

Добавлено через 58 секунд
Цитата Сообщение от wizard41 Посмотреть сообщение
про это вообще молчу
угу
0
0 / 0 / 0
Регистрация: 18.09.2023
Сообщений: 20
28.09.2023, 20:25  [ТС]
int f1 = f0[-2] - здесь я хотела взять последнюю цифру числа
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
28.09.2023, 20:28
Цитата Сообщение от Pandocka Посмотреть сообщение
f0[-2] - здесь я хотела взять последнюю цифру числа
где так учат нынче?
0
643 / 338 / 139
Регистрация: 19.10.2013
Сообщений: 1,209
28.09.2023, 20:42
Цитата Сообщение от wizard41 Посмотреть сообщение
f0[-2]
если уж по модному-стильному-молодежному то так правильно
C#
1
f0[^1]
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
28.09.2023, 20:44
Цитата Сообщение от 116rus Посмотреть сообщение
по модному-стильному-молодежному то так правильно
да ты шо!!! где бы записать...
0
643 / 338 / 139
Регистрация: 19.10.2013
Сообщений: 1,209
28.09.2023, 20:47
wizard41, но так ведь удобнее писать чем
C#
1
f0[f0.Length-1]
иногда модно-стильно-молодежность упрощает жизнь....
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
28.09.2023, 20:52
116rus, полностью солидарен. Я к тому, что надеюсь не для меня лекция была? )) Про [^1] я в курсе еще с "5-го класса"...
0
643 / 338 / 139
Регистрация: 19.10.2013
Сообщений: 1,209
28.09.2023, 20:54
wizard41, а вы как думаете? , а так, может ТС прочтет и примет к сведению.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
28.09.2023, 20:56
Цитата Сообщение от 116rus Посмотреть сообщение
может ТС прочтет и примет к сведению.
Ага. На самом деле это распространенная (и весьма интересная) задача. Тоже вот интересно будет посмотреть на предложенные решения, перед тем, как я выложу свое. Понятно, что ТС ни бум-бум...
0
3258 / 3276 / 556
Регистрация: 17.02.2019
Сообщений: 5,185
28.09.2023, 21:26
Цитата Сообщение от wizard41 Посмотреть сообщение
Тоже вот интересно будет посмотреть на предложенные решения
тоже подсмотрел у других
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
static void Main(string[] args)
{
    int n = int.Parse(Console.ReadLine());
 
    long[] fibNums = new long[2];
    fibNums[0] = 0;
    fibNums[1] = 1;
 
    for (int i = 2; i <= n; i++)
    {
        fibNums[i % 2] = (fibNums[(i - 1) % 2] + fibNums[(i - 2) % 2]) % 10;
    }
    Console.WriteLine(fibNums[n % 2]);
}
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
28.09.2023, 23:41
Цитата Сообщение от January29 Посмотреть сообщение
тоже подсмотрел у других
мммм... сойдет на 3+
0
3258 / 3276 / 556
Регистрация: 17.02.2019
Сообщений: 5,185
29.09.2023, 06:02
Цитата Сообщение от wizard41 Посмотреть сообщение
мммм... сойдет на 3+
Значит не старался как следует.
0
 Аватар для roach1967
983 / 463 / 233
Регистрация: 27.06.2014
Сообщений: 1,033
29.09.2023, 08:19
Pandocka, вот решение в лоб:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
 
namespace ConsoleApp37
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int a = int.Parse(Console.ReadLine());
            int fbn0 = 0, fbn1 = 1;
            for (int i = 2; i < a; i++)
            {
                int b = fbn0 + fbn1;
                fbn0 = fbn1;
                fbn1 = b % 10;
            }
            Console.WriteLine(fbn1);
            Console.ReadLine();
        }
    }
}
0
 Аватар для memphis
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 564
29.09.2023, 11:10
Цитата Сообщение от wizard41 Посмотреть сообщение
и весьма интересная
А что в ней интересного? Просто берем ответ из соответствующего периода Пизано. Тут даже думать негде.
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
29.09.2023, 14:55
memphis, вот этим то и интересна, что подход к решению может быть неожиданным.
периода Пизано
Тоже несколько оригинально. ТС, походу, таких слов от не знал..
1
 Аватар для memphis
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 564
29.09.2023, 18:25
Цитата Сообщение от wizard41 Посмотреть сообщение
подход к решению может быть неожиданным
В целом да, согласен. Сам люблю такие задачки. Но здесь явно не тот случай. Тут всего-то нужно открыть педию и пробежаться глазами по статье. Короче, даже поиск решения не представляет интереса.
А в общем случае, у таких, типично учебных, задач с конскими пределами (которые автор даже не может правильно внести) есть общая особенность - для них уже есть легковесное решение. В большинстве случаев O(1). Если даже поиск такого решения интересен и ты узнаёшь что-то новенькое - тогда да. А здесь - тьфу. )))
В этом смысле мне даже больше понравилась та простецкая задачка, где искали сумму проекций отрезков, на прошлой неделе. (Она, кстати, так и не решена до конца). Там хотя бы требовалось напрячь полторы извилины для учёта взаимных расположений отрезков - с разрывами, с перекрытием. Не бог весть что, но по сравнению с этой - титаническая работа ума.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3421 / 2740 / 575
Регистрация: 04.09.2018
Сообщений: 8,608
Записей в блоге: 3
29.09.2023, 18:36
memphis, ага, помню ту задачу. Я сильно не тестировал свой вариант, но вроде бы должен был перекрыть все вариации отрезков. Так как после этого никаких иных вопросов/вариантов не последовало, то я мог подумать, что та задача решена. Но если действительно там есть неточности, то готов принять контр аргументы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.09.2023, 18:36
Помогаю со студенческими работами здесь

Найти последнюю цифру числа
Подскажите пожалуйста , не могу вспомнить как найти последнюю цифру введенном числе . Нужно решить задачу 1) Написать программу...

Найти последнюю цифру числа
Дано натуральное число n (n ≤ 100). Найти последнюю цифру числа n

Найти последнюю цифру числа n
Дано n(n&lt;=100).Найти последнюю цифру числа n! Заранее спасибо =)

Найти последнюю цифру числа n
Дано натуральное число n (n&lt;=100) Найти последнюю цифру числа n Добавлено через 4 минуты program; var n: real; begin; ...

Найти первую цифру , последнюю цифру, количество цифр и сумму цифр числа
Дано натуральное число n. Найти первую цифру , последнюю цифру, количество цифр, сумму цифр Заранее спс)


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru