黑马程序员技术交流社区
标题:
写一个函数,在一个数组中找出随意几个值相加等于一个数
[打印本页]
作者:
卢京
时间:
2012-9-21 18:47
标题:
写一个函数,在一个数组中找出随意几个值相加等于一个数
比如:数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}
要找出,哪些数相加等于20。并输出组合的结果
注意:不一定是2个数,可以是多个数,只要相加等于20
作者:
潘梦军
时间:
2012-9-22 18:04
int[] num = new int[19] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
List<int> lists = new List<int>();
List<int> lists2 = new List<int>(); //保存那些加起来和是20的数
foreach (int i in num)
{
lists.Add(i);
}
int sum = 0; //和
int index = 0; //临时变量
Random ra = new Random();
do
{
index = ra.Next(lists.Count);
if (sum + lists[index] <= 20)
{
sum = sum + lists[index];
lists2.Add(lists[index]);
lists.Remove(lists[index]);
}
else
{
lists.Remove(lists[index]);
}
//重新赋值
if (lists.Count == 0)
{
foreach (int i in num)
{
lists.Add(i);
lists2.Clear();
}
sum = 0;
}
}
while (sum != 20 && lists.Count > 0);
Console.WriteLine(sum);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2