我有这个代码用于解决我的问题。我几乎可以通过一些测试得到略有不同的结果。如您所见,变量c应为“十进制”。然而,当它乘以变量“n”时。 这就是问题所在:
你的任务是编写一个程序来计算Ivancho当天可以制作的蛋糕数量和一块蛋糕的价格。你会得到一些数字。伊万乔想要那天蛋糕的数量,面粉的公斤数 需要制作一个蛋糕,供应商可以给你的千克面粉,你可以买到的松露量和每块松露的价格。如果伊万乔有足够的面粉来制作他想要的蛋糕量,他就会做出来 正是这个数量,剩下的面粉将被丢弃,你应该在控制台上打印“所有可用的产品,蛋糕的价格:{一个蛋糕的价格}”。或者,如果没有足够的面粉,你应该向下舍入 可以生产到整数的蛋糕数量并打印出来 在控制台上的格式为“只能制作{可生产的蛋糕数量}蛋糕,需要{千克面粉需要}千克面粉”所需的千克面粉是千克面粉之间的差异 需要制作Ivancho想要的蛋糕量和面粉的千克数。 输入 应从控制台读取输入数据。它由五个输入值组成,每个输入值位于一个单独的行中: •数量n - Ivancho想要的蛋糕数量。 •制作一块蛋糕所需的面粉数量为c - 千克。 •可用的面粉数量f - 千克。 •数量t - 可用的松露量。 •数量p - 一块松露的价格。
如果没有足够的面粉来制作Ivancho想要在控制台上打印的蛋糕量: 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);
}
}
}
}
答案 0 :(得分: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);
}
}
}
}