c# decimal, ulong, 计算数量
c# decimal, ulong, calculating quantities
我有我的 problem.I 代码,我几乎已经完成了一些测试,我得到的结果略有不同。正如您将看到的,变量 c 应该是 "decimal"。但是当它乘以变量 "n" 时。
这是问题所在:
你的任务是编写一个程序来计算 Ivancho 当天可以制作的蛋糕数量以及每个蛋糕的价格。你会得到一些数字。 Ivancho 那天想要的蛋糕数量,面粉的公斤数
制作一个蛋糕所需的信息、供应商可以给您的面粉公斤数、您可以购买的松露数量以及每块松露的价格。如果 Ivancho 有足够的面粉来做他想要的蛋糕,他会做
正是这个数量,剩余的面粉将被丢弃,您应该在控制台上打印“所有产品可用,蛋糕的价格:{一个蛋糕的价格}”。或者,如果没有足够的面粉,你应该向下取整
可生产的蛋糕数量为整数并打印出来
在控制台上显示格式“只能制作{可以生产的蛋糕数量}个蛋糕,需要{需要多少公斤面粉}公斤面粉”,其中需要的公斤面粉是面粉公斤数的差值
需要制作 Ivancho 想要的蛋糕数量和可用的面粉公斤数。
输入
应从控制台读取输入数据。它由五个输入值组成,每个输入值单独一行:
• 数字n——Ivancho 想要的蛋糕数量。
• 数字c – 制作一个蛋糕所需的面粉千克数。
• 数量f – 可用面粉的千克数。
• 数字t – 可用的松露数量。
• 数字 p – 一块松露的价格。
如果没有足够的面粉来制作 Ivancho 想要在控制台上打印的蛋糕数量:
o“只能做{可以生产的蛋糕数}个蛋糕,需要{需要多少千克面粉} kg
更多面粉”
如果面粉足够:
可制作的蛋糕数量必须为整数;蛋糕的价格和公斤
所需面粉的数量必须四舍五入到小数点后两位数。
约束条件
数字 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);
}
}
}
}
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);
}
}
}
}
我有我的 problem.I 代码,我几乎已经完成了一些测试,我得到的结果略有不同。正如您将看到的,变量 c 应该是 "decimal"。但是当它乘以变量 "n" 时。 这是问题所在:
你的任务是编写一个程序来计算 Ivancho 当天可以制作的蛋糕数量以及每个蛋糕的价格。你会得到一些数字。 Ivancho 那天想要的蛋糕数量,面粉的公斤数 制作一个蛋糕所需的信息、供应商可以给您的面粉公斤数、您可以购买的松露数量以及每块松露的价格。如果 Ivancho 有足够的面粉来做他想要的蛋糕,他会做 正是这个数量,剩余的面粉将被丢弃,您应该在控制台上打印“所有产品可用,蛋糕的价格:{一个蛋糕的价格}”。或者,如果没有足够的面粉,你应该向下取整 可生产的蛋糕数量为整数并打印出来 在控制台上显示格式“只能制作{可以生产的蛋糕数量}个蛋糕,需要{需要多少公斤面粉}公斤面粉”,其中需要的公斤面粉是面粉公斤数的差值 需要制作 Ivancho 想要的蛋糕数量和可用的面粉公斤数。 输入 应从控制台读取输入数据。它由五个输入值组成,每个输入值单独一行: • 数字n——Ivancho 想要的蛋糕数量。 • 数字c – 制作一个蛋糕所需的面粉千克数。 • 数量f – 可用面粉的千克数。 • 数字t – 可用的松露数量。 • 数字 p – 一块松露的价格。
如果没有足够的面粉来制作 Ivancho 想要在控制台上打印的蛋糕数量: o“只能做{可以生产的蛋糕数}个蛋糕,需要{需要多少千克面粉} kg 更多面粉” 如果面粉足够: 可制作的蛋糕数量必须为整数;蛋糕的价格和公斤 所需面粉的数量必须四舍五入到小数点后两位数。 约束条件 数字 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);
}
}
}
}
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);
}
}
}
}