谁会用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 则可以用一些数据结构(例如矩阵)来储存硬币的面值和有多少枚硬币的投入来减少重复性的操作。

你的程序应该不断的提示用户美分的数量,只要键入正确数量,程序将计算出硬币的数量。当键入零或者不正确的数量,程序将终止。
展开
 我来答
phdz
2011-03-05 · TA获得超过115个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:94.3万
展开全部
题目里的美分应该是指便士吧?
其中:£表示英镑,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));
}
}
fufknp
2011-03-04 · TA获得超过397个赞
知道小有建树答主
回答量:463
采纳率:0%
帮助的人:0
展开全部
如由1出发
之后就一直向前一格一格的移动
直到碰到mirror再根据mirror的方向决定转向哪边

方法是可以用一个2d array去存着哪一格有mirror

不过问题是...
出题的方法
要不出到无解的题目
你就要再多多研究出题的方法了
追问
能展示一下吗?还是不会做!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式