-1

私の問題に対してこのコードがあります。いくつかのテストでは、わずかに異なる結果が得られます。ご覧のとおり、変数 c は「10 進数」でなければなりません。ただし、変数「n」で乗算する場合。これが問題です:

あなたの仕事は、Ivancho がその日に作ることができるケーキの量と 1 つのケーキの価格を計算するプログラムを作成することです。いくつかの数字が与えられます。Ivancho がその日に欲しいケーキの数、1 つのケーキを作るのに必要な小麦粉のキログラム、プロバイダーが提供できる小麦粉のキログラム、購入できるトリュフの量、および各トリュフの価格。Ivancho が必要な量のケーキを作るのに十分な小麦粉を持っている場合、彼はちょうどその量を作ります。残りの小麦粉は破棄され、コンソールに「すべての製品が利用可能です。ケーキの価格: {1 ケーキの価格}」と印刷する必要があります。 」。または、十分な小麦粉がない場合は、製造できるケーキの数を整数に切り捨てて、コンソールに「{製造できるケーキの数} のケーキしか作ることができません。{キログラムの小麦粉が必要です} kg の小麦粉が必要です」ここで、必要な小麦粉のキログラムは、Ivancho が望んでいた量のケーキを作るのに必要な小麦粉のキログラムと、利用可能な小麦粉のキログラムとの差です。入力 入力データはコンソールから読み取る必要があります。これは 5 つの入力値で構成され、それぞれが別の行に表示されます。 • 数値 n – Ivancho が必要とするケーキの量。• 数値 c – 1 つのケーキを作るのに必要な小麦粉のキログラム。• 数 f – 利用可能な小麦粉のキログラム。• 数 t – 利用可能なトリュフの量。• 数 p – トリュフ 1 個の価格。それぞれ別の行に: • 数 n – Ivancho が欲しいケーキの量。• 数値 c – 1 つのケーキを作るのに必要な小麦粉のキログラム。• 数 f – 利用可能な小麦粉のキログラム。• 数 t – 利用可能なトリュフの量。• 数 p – トリュフ 1 個の価格。それぞれ別の行に: • 数 n – Ivancho が欲しいケーキの量。• 数値 c – 1 つのケーキを作るのに必要な小麦粉のキログラム。• 数 f – 利用可能な小麦粉のキログラム。• 数 t – 利用可能なトリュフの量。• 数 p – トリュフ 1 個の価格。

 Ivancho が希望する量のケーキを作るのに十分な小麦粉がない場合は、コンソールに次のように印刷します。十分な小麦粉があります:  製造できるケーキの数は整数でなければなりません。ケーキの価格と必要な小麦粉のキログラムは、小数点以下 2 桁に丸める必要があります。制約  数値 n は範囲 [1 … 18 446 744 073 709 551 615] の有効な整数になります  数値 c は範囲 [0 … 7.9 x 1028] の浮動小数点数になります。 数値 f、t、および p は、[0 ... 4 294 967 295] の範囲の有効な整数です。 システムの使用。System.Collections.Generic の使用; System.Linq を使用します。System.Text を使用します。System.Threading.Tasks の使用;

namespace CakeTycoon
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = ulong.Parse(Console.ReadLine()); // amount of cakes George wants
            var c = decimal.Parse(Console.ReadLine()); // kg of fllour needed to make 1 cake

            var f = uint.Parse(Console.ReadLine()); // kg of flour available
            var t = uint.Parse(Console.ReadLine()); // amount of truffles available
            var p = uint.Parse(Console.ReadLine()); // price of one truffle


            var truffelCost = t * p; // total price of truffles

            var cakesCanBeMade = Math.Floor(f / c );

            var cakePrice = (truffelCost / n) * 1.25;
            var flourNeeded = 0.00;
            var totalFlour = n * c;

            if (cakesCanBeMade >= n)
            {
                Console.WriteLine("All products available, price of a cake: {0}", cakePrice); 

            }
            else if (cakesCanBeMade < n)
            {
                flourNeeded = totalFlour - f ;
                Console.WriteLine("Can make only {0} cakes, need {1}kg more flour", cakesCanBeMade,flourNeeded);
            }

        }
    }
}
4

1 に答える 1

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

namespace CakeTycoon
{
    class Program
    {
        static void Main(string[] args)
        {
            ulong cakesWanted = ulong.Parse(Console.ReadLine());
            double kilosPerCake = double.Parse(Console.ReadLine());
            uint flourKilos = uint.Parse(Console.ReadLine());
            uint truffles = uint.Parse(Console.ReadLine());
            uint trufflePrice = uint.Parse(Console.ReadLine());

            ulong truffleCost = (ulong)truffles * trufflePrice;
            double cakesProduced = Math.Floor(flourKilos / kilosPerCake);

            if (cakesProduced < cakesWanted)
            {
                double kilogramsNeeded = (kilosPerCake * cakesWanted) - flourKilos;
                Console.WriteLine("Can make only {0} cakes, need {1:F2} kg more flour", cakesProduced, kilogramsNeeded);

            }
            else
            {
                double cakeCost = ((double)truffleCost / cakesWanted) * 1.25d;
                Console.WriteLine("All products available, price of a cake: {0:F2}", cakeCost);
            }
        }
    }
}
于 2016-04-16T18:50:21.203 に答える