С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
1 / 1 / 0
Регистрация: 18.11.2010
Сообщений: 12

объсните принцип работы

18.11.2010, 21:22. Показов 3956. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните кому не сложно принцип работы данной программы
Планируется переписывание на паскале
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
#include <fstream>
 
using namespace  std;
 
int main()
{
    ifstream in("INPUT.TXT");
    ofstream out("OUTPUT.TXT");
    int X,Y;
    in>>X>>Y;
    int Cx=1,Cy=1,Year=X-2;
    while(--Year)
    {
        int tmp=Cx+Cy;
        Cx=Cy;
        Cy=tmp;
    }
    int x,y=0;
    do 
    {
        int numerator=Y-y*Cy;
        x=numerator/Cx;
        if(numerator%Cx)continue;
        out<<x<<' '<<y<<endl;
    } while (y++<=x);
    return 0;
}
Вот условие к данной задаче:
Билли Бонс положил в сундук некоторое количество золотых монет. На второй год он вынул из сундука сколько-то монет. Начиная с третьего года, он добавлял столько монет, сколько было в сундуке два года назад.

Требуется написать программу, которая определит, сколько монет было в сундуке в первый и во второй года, если в X-м году там оказалось ровно Y монет.
Входные данные

Входной файл INPUT.TXT содержит натуральные числа X и Y (3 <= X <= 20, 1 <= Y <= 32767).
Выходные данные

В выходной файл OUTPUT.TXT выведите через пробел количество монет в первый и второй года. Гарантируется, что решение задачи всегда существует.
Пример
№ INPUT.TXT OUTPUT.TXT
1 6 25 5 2

Пояснение к примеру
Если в первый год положить 5 монет, а во второй год вынуть 3 монеты, то начиная с первого года в сундуке будет 5, 2, 7, 9, 16, 25, ... монет.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2010, 21:22
Ответы с готовыми решениями:

Принцип работы fstream
Допустим у нас есть файл из четырех чисел, например: 453 32 43 54. Я создаю экземпляр класса ifstream и инициализирую массив из четырех...

Принцип работы switch
Всем доброго времени суток. Изучаю самостоятельно С++. Возник вопрос по поводу функции switch. Каким образом она работает на данном...

Принцип работы рекурсии
Искал в инете и в поиске, но никак не могу понять принцип работы рекурсии программно. Допустим есть функция int f(int n) { if(0 ==...

4
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
18.11.2010, 22:20
Код очень криво написан, вряд ли работает, читает что-то из файла, шаг в сторону - программа вылетает.
Что-то суммирует, при чем делает это очень криво и нерационально, очень много UB. Принцип, по которому была написана эта программа - лишь бы скомпилировалось.

Добавлено через 32 минуты
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
#include <fstream>
#include <iostream>
#include <cstdlib>
 
int main()
{
    std::ifstream in("INPUT.TXT");
    std::ofstream out("OUTPUT.TXT");
    int X, Y;
    if (!in)
        std::cout << "File INPUT.TXT not found";
    in>>X>>Y;
    int Cx = 1, Cy = 1, Year = X - 2;
    while (Year-- > 0)
    {
        Cy += Cx;
        Cx = Cy - Cx;
    }
    int numerator = Y, x, y = 0;
    do
    {
        x = numerator / Cx;
        if (!(numerator % Cx))
            out << x << ' ' << y << std::endl;
        numerator -= Cy;
    } while (y++ <= x);
    return 0;
}
2
1 / 1 / 0
Регистрация: 18.11.2010
Сообщений: 12
18.11.2010, 22:24  [ТС]
А можешь рассказать как она работает а то я в C++ вобще ничего не знаю, я просто нашел задачу которая мне нужна только на C++ а не на паскале, и сейчас хочу переписать её на Паскаль
0
6 / 6 / 2
Регистрация: 25.02.2010
Сообщений: 12
19.11.2010, 11:02
первый цикл находит x-ое и (x-1)-ое число Фибоначчи, а что делает второй не совсем понятно.
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
19.11.2010, 15:51
Попробую объяснить сам алгоритм:

Цитата Сообщение от Antoniy777 Посмотреть сообщение
Пояснение к примеру
Если в первый год положить 5 монет, а во второй год вынуть 3 монеты, то начиная с первого года в сундуке будет 5, 2, 7, 9, 16, 25, ... монет.
Сначало у нас есть число x и число y (в данном случае это 5 и 2).
x+y= 1x+1y
Далее числа будут такие:
x+y+y= 1x+2y
x+y+y+x+y= 2x+3y
x+y+y+x+y+x+y+y= 3x+5y
x+y+y+x+y+x+y+y+x+y+y+x+y= 5x+8y
и т.д. (посмотрите как изменяется коэффиценты у x и y по годам)
Вот зачем здесь нужны числа Фибоначчи.
Здесь вычисляются два числа Фибоначчи, которые будут соответствовать коээфициентам перед x и y:
C++
1
2
3
4
5
6
           while(--Year)
        {
                int tmp=Cx+Cy;
                Cx=Cy;
                Cy=tmp;
        }
А здесЬ:
C++
1
2
3
4
5
6
7
           do 
        {
                int numerator=Y-y*Cy;
                x=numerator/Cx;
                if(numerator%Cx)continue;
                out<<x<<' '<<y<<endl;
        } while (y++<=x);
просто идет подбор y (начиная с 0), и проверяется может ли при таком y существовать x.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2010, 15:51
Помогаю со студенческими работами здесь

Принцип работы функции
Помогите, пожалуйста, разобраться в принципе работы функции //Функция находит самую длинную неубывающую подпоследовательность void...

Принцип работы программ
Изучаю с++. Сейчас знаю до классов и все. И у меня возник вопрос. Получается весь принцип работы программы сводится к...

Принцип работы strpbrk
Изначально я думал, что он возвращает только 1ый символ, но эта функция _string operator*(_string &amp;a){ _string t; ...

Принцип работы pthread_join
Есть код функции pthread_join из glibc. Подскажите: 1) Номер строки и что происходит, если для потока уже вызвали pthread_join? Тут...

Принцип работы программы
Смысл программы: подсчет количества слов и предложений из подключенного файла. Код есть, только не понимаю, почему подсчет слов (s) идет...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru