谁会用C# 的array来做下面的题目阿???求高手解答! 题目如下:
写一段程序用来提示用户投入一定数量的美分。程序然后在计算出最少需要多少数量的美分,这些硬币可能是£2,£1,50p,20p,10p,5p,2p,1...
写一段程序用来提示用户投入一定数量的美分。程序然后在计算出最少需要多少数量的美分,这些硬币可能是£2, £1, 50p, 20p, 10p, 5p, 2p, 1p.
举个例子,397美分至少需要以下数量的硬币:
1 x £2, 1 x £1, 1 x 50p, 2 x 20p, 1 x 5p, 1 x 2p
在你的部分的解决方案中可能存在很多重复性的工作。Marks 则可以用一些数据结构(例如矩阵)来储存硬币的面值和有多少枚硬币的投入来减少重复性的操作。
你的程序应该不断的提示用户美分的数量,只要键入正确数量,程序将计算出硬币的数量。当键入零或者不正确的数量,程序将终止。 展开
举个例子,397美分至少需要以下数量的硬币:
1 x £2, 1 x £1, 1 x 50p, 2 x 20p, 1 x 5p, 1 x 2p
在你的部分的解决方案中可能存在很多重复性的工作。Marks 则可以用一些数据结构(例如矩阵)来储存硬币的面值和有多少枚硬币的投入来减少重复性的操作。
你的程序应该不断的提示用户美分的数量,只要键入正确数量,程序将计算出硬币的数量。当键入零或者不正确的数量,程序将终止。 展开
2个回答
展开全部
题目里的美分应该是指便士吧?
其中:£表示英镑,p表示便士,并且 1英镑=100便士
所以你的例子才会有
397 =1 x £2, 1 x £1, 1 x 50p, 2 x 20p, 1 x 5p, 1 x 2p
即 397=200 +100 +50 +40 +5 +2
一个思路,你想用数组的话可以这样。
===================
1、array1={200,100,50,20,10, 5, 2, 1} //表示基本的货币单位
2、array2={0 , 0 ,0 ,0 ,0 ,0 ,0, 0} //记录相应货币单位需要的数量
2、用户输入一个数字n
3、用程序中计算这个n中包含几个 200,将这个数字更新到array2相应位置。再看n减去这几个200后剩下的数中包含几个100,再记录,如此反复,等等。
4、把array2中这些数字输出,就可以了。
另外,计算 n中包含几个 200 这种形式,其实就是计算下 int count=n/200 得到 的count就是。
===================
static void Main(string[] args)
{
string[] array0 = { "£2", "£1", "50p", "20p", "10p", "5p", "2p", "1p" };
int[] array1 = { 200, 100, 50, 20, 10, 5, 2, 1 };
int[] array2 = { 0, 0, 0, 0, 0, 0, 0, 0 }; //或者用多维数组。
while (true)
{
Console.WriteLine("输入便士总数:");
int a = Convert.ToInt32(Console.ReadLine());
if (a <= 0)
return;//输入<=0数字时,退出,这里没有判断是否数字。
int b = 0;
for (int i = 0; i < array1.Length; i++)
{
b = a / array1[i];
array2[i] = b;
a -= b * array1[i];
}
string outstr = "";
for (int i = 0; i < array2.Length; i++)
{
if (array2[i] != 0)
outstr += array2[i].ToString() + "*" + array0[i] + " + ";
}
Console.WriteLine("可分解为:" + outstr.Substring(0, outstr.Length - 2));
}
}
其中:£表示英镑,p表示便士,并且 1英镑=100便士
所以你的例子才会有
397 =1 x £2, 1 x £1, 1 x 50p, 2 x 20p, 1 x 5p, 1 x 2p
即 397=200 +100 +50 +40 +5 +2
一个思路,你想用数组的话可以这样。
===================
1、array1={200,100,50,20,10, 5, 2, 1} //表示基本的货币单位
2、array2={0 , 0 ,0 ,0 ,0 ,0 ,0, 0} //记录相应货币单位需要的数量
2、用户输入一个数字n
3、用程序中计算这个n中包含几个 200,将这个数字更新到array2相应位置。再看n减去这几个200后剩下的数中包含几个100,再记录,如此反复,等等。
4、把array2中这些数字输出,就可以了。
另外,计算 n中包含几个 200 这种形式,其实就是计算下 int count=n/200 得到 的count就是。
===================
static void Main(string[] args)
{
string[] array0 = { "£2", "£1", "50p", "20p", "10p", "5p", "2p", "1p" };
int[] array1 = { 200, 100, 50, 20, 10, 5, 2, 1 };
int[] array2 = { 0, 0, 0, 0, 0, 0, 0, 0 }; //或者用多维数组。
while (true)
{
Console.WriteLine("输入便士总数:");
int a = Convert.ToInt32(Console.ReadLine());
if (a <= 0)
return;//输入<=0数字时,退出,这里没有判断是否数字。
int b = 0;
for (int i = 0; i < array1.Length; i++)
{
b = a / array1[i];
array2[i] = b;
a -= b * array1[i];
}
string outstr = "";
for (int i = 0; i < array2.Length; i++)
{
if (array2[i] != 0)
outstr += array2[i].ToString() + "*" + array0[i] + " + ";
}
Console.WriteLine("可分解为:" + outstr.Substring(0, outstr.Length - 2));
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询