Задача "ремонт на плочки" от PB C# Book
Здравейте на всички, имам един проблем със съответната задача от заглавието. При следните условия за вход/изход:
Вход | Изход |
20 | 19,9 |
5 | |
4 |
|
1 |
3,98 |
2 |
при мен излиза изход 20 и 4 ? Пробвах с Math. Round, ToString("N2"), минах през DateTime (за 3,98 по-конкретно), обиколих MSDN, но нещо не се справям и имам нужда от помощ. Ето кода ми:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
double N = double.Parse(Console.ReadLine());
double W = double.Parse(Console.ReadLine());
double L = double.Parse(Console.ReadLine());
double M = double.Parse(Console.ReadLine());
double O = double.Parse(Console.ReadLine());
double NSum = N * N;
double MOSum = M * O;
double ToBePainted = NSum - MOSum;
double SinglePieceTile = W * L;
double RequiredTiles = NSum / SinglePieceTile;
double Time = RequiredTiles * 0.2;
//Console.WriteLine(RequiredTiles.ToString("N2")); //Not working
//Console.WriteLine(Time.ToString("N2")); //Still not working :(
//Console.WriteLine(Math.Round(Time, 2)); //Second try, Nope
За необходими плочки може би е по-добре да се закръгли, все пак кой ще купи 19.9 плочки, а не 20, но Judge няма да го приеме.. Благодаря.
М не, не става. Judge ми дава 30 точки. Това е задачата, с всички закръглявания и подобни махнати:
https://imgur.com/byYUq5x
При мен проблема е че и без закръгляване става на 20 и 4, автоматично го закръглява нагоре и не знам защо, при положение че не съм ползвал int, а double.
Открих грешката.
Делиш цялата площ на броя плочки, а трябва да е площта на площадката мунус площта на пейката в числител.
Ето в този ред:
double RequiredTiles = ToBePainted / SinglePieceTile;
си взел NSum вместо ToBePainted.
Затова ти трябват повече плочки, пейката я няма :-)