求一取球的算法,帮帮忙

yusheng622 2017-02-24 05:24:32
描述:有多个容器,从左到右排列,编号r1,r2,r3……,每个容器中放不定数量的球,现要取一个指定数值Q个球,必须从左边依次取,前面容器里取完才能取后面容器里,取够为止,记录所取的容器编号和数量。这个算法怎么解? 用程序怎么实现呢?


比如:r1球数量为1,r2数量为3,r3数量为2,r4数量为5。现要取10个球。



...全文
888 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel6709 2017-05-17
  • 打赏
  • 举报
回复
贪婪法。
大然然 2017-03-01
  • 打赏
  • 举报
回复
引用 7 楼 yusheng622 的回复:
[quote=引用 5 楼 shingoscar 的回复:] [quote=引用 3 楼 yusheng622 的回复:] [quote=引用 1 楼 shingoscar 的回复:] 这TMD也叫算法?
多个容器.SelectMany(a=>a).Take(指定的数量);
呵呵,有点小白了,你这个貌似不是C#,用C#怎么写呢,请指教[/quote] 啊哈这不是C#是什么?[/quote] a=>a 这个写法貌似是java吧[/quote] 你没有用过 linq ?????
头狼一号 2017-03-01
  • 打赏
  • 举报
回复
linq语句都看不懂,
Poopaye 2017-02-25
  • 打赏
  • 举报
回复
引用 3 楼 yusheng622 的回复:
[quote=引用 1 楼 shingoscar 的回复:] 这TMD也叫算法?
多个容器.SelectMany(a=>a).Take(指定的数量);
呵呵,有点小白了,你这个貌似不是C#,用C#怎么写呢,请指教[/quote] 啊哈这不是C#是什么?
yusheng622 2017-02-25
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
如果要自己写,那么就是
int[] r = {1,3,2,5};
int q = 10;
for (int i = 0; i < r.Count(); i++)
{
if (q <= r[i]) { Console.WriteLine("容器{0}取{1}个", i+1, q); break; }
Console.WriteLine("容器{0}取{1}个", i+1, r[i]);
q-=r[i];
}
你这个是按我举的例子写了,如果是容器数量有多少不知道该怎么写呢
yusheng622 2017-02-25
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
这TMD也叫算法?
多个容器.SelectMany(a=>a).Take(指定的数量);
呵呵,有点小白了,你这个貌似不是C#,用C#怎么写呢,请指教
yusheng622 2017-02-25
  • 打赏
  • 举报
回复
引用 5 楼 shingoscar 的回复:
[quote=引用 3 楼 yusheng622 的回复:] [quote=引用 1 楼 shingoscar 的回复:] 这TMD也叫算法?
多个容器.SelectMany(a=>a).Take(指定的数量);
呵呵,有点小白了,你这个貌似不是C#,用C#怎么写呢,请指教[/quote] 啊哈这不是C#是什么?[/quote] a=>a 这个写法貌似是java吧
threenewbee 2017-02-25
  • 打赏
  • 举报
回复
引用 4 楼 yusheng622 的回复:
[quote=引用 2 楼 caozhy 的回复:] 如果要自己写,那么就是
int[] r = {1,3,2,5};
int q = 10;
for (int i = 0; i < r.Count(); i++)
{
if (q <= r[i]) { Console.WriteLine("容器{0}取{1}个", i+1, q); break; }
Console.WriteLine("容器{0}取{1}个", i+1, r[i]);
q-=r[i];
}
你这个是按我举的例子写了,如果是容器数量有多少不知道该怎么写呢[/quote] List<int> r = new List<int>(); r.Add(1); r.Add(3); ... 下面代码一样
threenewbee 2017-02-24
  • 打赏
  • 举报
回复
如果要自己写,那么就是
int[] r = {1,3,2,5};
int q = 10;
for (int i = 0; i < r.Count(); i++)
{
if (q <= r[i]) { Console.WriteLine("容器{0}取{1}个", i+1, q); break; }
Console.WriteLine("容器{0}取{1}个", i+1, r[i]);
q-=r[i];
}
Poopaye 2017-02-24
  • 打赏
  • 举报
回复
这TMD也叫算法?
多个容器.SelectMany(a=>a).Take(指定的数量);

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧