c#十进制,ulong,计算数量

本文关键字:计算 ulong 十进制 | 更新日期: 2024-09-16 23:52:31

我有这段代码来解决我的问题。我差不多到了,有些测试结果略有不同。正如您将看到的,变量c应该是"decimal"。但是,当它与变量"n"相乘时。这就是问题所在:

你的任务是编写一个程序来计算伊万乔当天可以做的蛋糕数量和一个蛋糕的价格。你会得到一些数字。伊万乔当天想要的蛋糕数量,面粉的公斤数制作一个蛋糕所需的面粉、供应商可以给你的面粉公斤数、你可以购买的松露数量以及每只松露的价格。如果伊万乔有足够的面粉来做他想要的蛋糕,他就会做刚好是这个数量,剩下的面粉就会被丢弃,你应该在控制台上打印"所有可用的产品,一个蛋糕的价格:{一个蛋糕价格}"。或者,如果面粉不够,你应该把可以生产的蛋糕数量为整数并打印出来在控制台上,格式为"只能制作{可以生产的蛋糕数量}个蛋糕,需要{需要的面粉公斤}更多的面粉公斤",其中所需的面粉公斤是面粉公斤之间的差值需要制作伊万乔想要的蛋糕数量和可用的面粉公斤数。输入应从控制台读取输入数据。它由五个输入值组成,每个输入值位于一行:•数字n——伊万乔想要的蛋糕数量。•数字c——制作一个蛋糕所需的面粉公斤数。•可用面粉的数量f–千克。•数量t——可用块菌的数量。•数字p——一块松露的价格。

如果没有足够的面粉制作伊万乔想要在控制台上打印的蛋糕数量:o"只能制作{可以生产的蛋糕数量}蛋糕,需要{公斤面粉}公斤更多面粉"如果有足够的面粉:可以生产的蛋糕数量必须是一个整数;蛋糕的价格和公斤数所需面粉的数量必须四舍五入到小数点后的两位数。限制数字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);
            }
        }
    }
}

c#十进制,ulong,计算数量

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);
            }
        }
    }
}