Задача 4. Завръщане в миналото

Задача 4. Завръщане в миналото

blaga_ivanova avatar blaga_ivanova 0 Точки

Задача 4. Завръщане в миналото

Дава ми 90/100 и не мога да разбера къде ми е грешката.

 

Изпит по "Програмиране за начинаещи" – 17 юли 2016

Задача 4. Завръщане в миналото

Иванчо е на 18 години и получава наследство, което се състои от X сума пари и машина на времето. Той решава да се върне до 1800 година, но не знае дали парите ще са достатъчни, за да живее без да работи. Напишете програма, която пресмята, дали Иванчо ще има достатъчно пари, за да не се налага да работи до дадена година включително. Като приемем, че за всяка четна (1800, 1802 и т.н) година ще харчи 12 000 лева. За всяка нечетна (1801,1803  и т.н.) ще харчи 12 000 + 50 * [годините, които е навършил през дадената година].

Вход

Входа(ът) се чете от конзолата и съдържа точно 2 реда:

  • Наследените париреално число в интервала [1.00 ... 1 000 000.00]
  • Годината, до която трябва да живее (включително)цяло число в интервала [1801 ... 1900]

Изход

Да се отпечата на конзолата 1 ред. Сумата трябва да е форматирана до два знака след десетичната запетая:

  • Ако парите са достатъчно:
    • „Yes! He will live a carefree life and will have {N} dollars left.“ – където N са парите, които ще му останат.
  • Ако парите НЕ са достатъчно:
    • He will need {М} dollars to survive.– където M е сумата, която НЕ достига.

Решението ми:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _04
{
    class Program
    {
        static void Main(string[] args)
        {
            var nasledstvo = double.Parse(Console.ReadLine());
            var godinaExit = int.Parse(Console.ReadLine());

            var ageIvan = 0;


            for (int godina = 1800; godina <= godinaExit; godina++)
            {

                if (godina % 2 == 0)
                {

                    nasledstvo -= 12000;
                }
                else
                {
                    ageIvan = (godinaExit - godina) + 18;
                    nasledstvo -= 12000 + (ageIvan * 50);
                }

            }
            if (nasledstvo >= 0)
            {
                Console.WriteLine($"Yes! He will live a carefree life and will have {nasledstvo:f2} dollars left.");
            }
            else
            {
                nasledstvo = Math.Abs(nasledstvo);
                Console.WriteLine($"He will need {nasledstvo:f2} dollars to survive.");
            }

        }
    }
}
 

Тагове:
0
Основи на програмирането 15/12/2017 10:52:39
Ignatovw99 avatar Ignatovw99 3 Точки

Judge ми дава 50/100, въпреки че програмата работи. Не разбирам къде ми е грешката.

Решението ми - https://pastebin.com/bB745zvH

0
TeMePyT avatar TeMePyT 45 Точки

if (heritage >= 0 )
            {
                Console.WriteLine("Yes! He will live a carefree life and will have {0:f2} dollars left", heritage);
            }

Изречението завършва с точка.  Аз вече свикнах да правя double check на изхода за пунктуация и правопис :) Иначе да, кода си е наред.

0
25/01/2018 15:58:54
Ignatovw99 avatar Ignatovw99 3 Точки

Вече ще имам едно наум за изхода да го проверявам винаги. Благодаря ти !

0