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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2018, 13:08   #1
kekeksey
 
Регистрация: 01.05.2017
Сообщений: 6
По умолчанию Решение задачи С#. Билли Бонс положил в сундук некоторое количество золотых монет

Помогите, кому не трудно.
Билли Бонс положил в сундук некоторое количество золотых монет. На второй год он вынул из сундука положительное количество монет. Начиная с третьего года, он добавлял столько монет, сколько было в сундуке два года назад.

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

Максимум, что у меня есть это вот это, да и то не работает...

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int X = Convert.ToInt32(textBox1.Text);
            int Y = Convert.ToInt32(textBox2.Text);
            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;
                   textBox3.Text+=x+"  "+y;
                numerator -= Cy;
            } while (y++ <= x);

        }
    }
}
kekeksey вне форума Ответить с цитированием
Старый 05.12.2018, 14:15   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Пусть изначально было a монет, на второй год стало b монет (0<b<a) .
Тогда в год X их станет F(X-2)*a+F(X-1)*b=Y где F(i) - числа Фибоначчи.
Узнай что это за числа, посчитай их, найди подходящие целочисленные a и b из уравнения и условия
Допускаю, что может быть несколько решений
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.12.2018, 11:12   #3
kekeksey
 
Регистрация: 01.05.2017
Сообщений: 6
По умолчанию

Вот, решил.
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int X, Y;
            X = Convert.ToInt32(textBox1.Text);
            Y = Convert.ToInt32(textBox2.Text);
            int[] Arr = new int[X];
            //перебираем 2 элемент
            if (X <= 20 && Y <= 32767) 
            for (int second = 0; second< Y - second; second++)
            { //Перебираем 1 элемент
                for(int first = second+1; first< Y - second; first++)
                {
                    Arr[0] = first;
                    Arr[1] = second;
                    for (int i = 2; i < X; i++)
                    {
                        Arr[i] = Arr[i - 1] + Arr[i - 2];
                    }
                    if (Arr.Last() == Y)
                    { 
                        label4.Text = "В первом году было " + first;
                        label5.Text = "Во втором году было " + second;
                    }
                }
                
            }

        }
    }
}
kekeksey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сдача наименьшим количество монет Cyber321 Помощь студентам 1 17.09.2018 15:02
при полном проигрыше игровых монет, их число автоматически пополняется по 10 монет, каждые 10 минут He4ToEnT PHP 2 15.06.2016 19:15
есть неограниченное количество монет заданного номинала.Программа для размена заданной суммы наименьшим количеством монет (Паскаль xrystynka171 Помощь студентам 9 14.12.2013 14:50
у Пок-ля n монет достоинством H(1)..H(n). у продавца m монет B(1)...B(l). Купить вещь стоимости S (c++) Роза!!! Помощь студентам 4 07.05.2011 22:34