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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2018, 14:11   #1
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию [РЕШЕНО] Джон взял кредит в банке на сумму А под Р% в день. Каждый седьмой день он будет возвращать некоторую сумму В. Сможет ли Джон рассчитаться с банком

Всем привет. Прошу написать код для следующей задачи, т.к. будто она и простая, но вот слепить ничего не могу. Задание следующее.
Джон взял кредит в банке на сумму А под Р% в день. Каждый седьмой день он будет возвращать некоторую сумму В. Сможет ли Джон рассчитаться с банком и если да то сколько платежей придется ему заплатить и какая сумма будет внесена последней.
Входные данные:
три целых числа А, Р и В.
Исходные данные
два числа, количество платежей и сумма которая будет внесена последней (с точностью 2 знака после запятой) или -1, если это нельзя сделать.
Пример:
Ввод: 100 2 90
Вывод: 2 28.57

Вот как бы начало, где я подсчитываю суму вместе с процентами за 7 дней, далее я понял что нужно вычесть от этого числа В и опять считать в цикле, но просто я думаю есть вариант решения проще. Ниже я просто привел один цикл и вывожу суму, которую нужно опять зациклить. Подскажите, пожалуйста.
Код:
var a,b,p,i:longint;
    s:real;
 begin
  read (a,p,b);
  s:=a;
  for i:=1 to 7 do
   begin
    s:=s+s*p/100;
   end;
   s:=s-b;
    write(s:0:2);
 end.
Я не прошу "сделать за меня", лишь прошу помощи доработать мою программу. Вот я сделал, но на тестах проходит на 82%. Мне бы ещё всчитать (-1), но не могу найти условие при котором это -1 будет выводить. Код предоставляю.
Код:
var a,b,p,i,k:longint;
    s:real;
 begin
  read (a,p,b);
  s:=a;
  k:=0;
 while s>0 do
  begin
  for i:=1 to 7 do
   begin
    s:=s+s*p/100;
   end;
   s:=s-b;
   inc (k)
  end;
    write(k,' ',s+b:0:2);
 end.
Решение в следующем посте

Последний раз редактировалось Вадим Мошев; 20.12.2018 в 13:49.
kim-im вне форума Ответить с цитированием
Старый 20.12.2018, 12:08   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Если после s:=s-b s стало больше А, то кредит он не вернет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.12.2018, 13:19   #3
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 42
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Если после s:=s-b s стало больше А, то кредит он не вернет
Спасибо большое АВАТАРу, всё прошло на 100%
kim-im вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбойники Джон и Боб ограбили караван и в качестве добычи получили три золотых слитка - C++ Александр121 Общие вопросы C/C++ 4 10.02.2018 21:51
есть 200 тонн цемента, в первый день я трачу 5 тонн, дальше каждый день на 20% больше. Как при помощи цикла while заставить программу показать, через сколько дней цемент кончится? LaSTiqq Паскаль, Turbo Pascal, PascalABC.NET 3 21.04.2017 17:47
С++ Лыжник, начав тренировки, в первый день пробежал n км. Каждый следующий день он увеличивал пробег на m% от пробега предыдущего дня. Сколько километров он пробежит за k дней. marina46 Помощь студентам 9 23.11.2016 18:27
Зная валютный курс на сегоднейший день и имеющую сумму тенге рассчитать количество долларов (Паскаль) digger_fallboy Помощь студентам 2 26.09.2011 19:40
показать сумму за день vostok Microsoft Office Excel 17 21.06.2010 08:27