如何使用不超过 10 的总和填充数组或列表?我可以使用 3 个数组来执行此操作,其中 2 个数组包含答案不高于 10 的随机数,以及第 3 个数组包含答案。
但这是一种丑陋的做法。
为了更清楚我想要什么:
1 + 1 = 2
5 + 5 = 10
3 + 2 = 5
等等等等
用户一开始只能看到 1 + 1。当时间到了,用户可以看到答案。
那么有没有人有另一种解决方案,然后我将要试用什么?
您很可能正在尝试做这样的事情。这已编译但未经测试。注意到如何使用随机数生成器和减法创建这些对。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
struct addition_pairs{
public int first;
public int second;
}
static void Main(string[] args)
{
List<addition_pairs> main_list;
main_list = new List<addition_pairs>();
//TODO call populate_list and choose how many sets you want.
}
private void populate_list(int how_many, List<addition_pairs> list)
{
for (int i = 0; i < how_many; i++)
{
Random random = new Random();
int randomNumber1 = random.Next(0, 10);
addition_pairs insert = new addition_pairs();
insert.first = randomNumber1;
insert.second = random.Next(0, 10-randomNumber1);
list.Add(insert);
}
}
}
}
编辑:已修复,因此每次 LOL 都不会增加到 10。我通过了数学我保证
您可以使用二维数组。
int numSums = 4;
int[,] sums = new int[numSums,3];
// 1 + 1 = 2
sums[0,0] = 1;
sums[0,1] = 1;
sums[0,2] = sums[0,0] + sums[0,1];
// 5 + 5 = 10
sums[1,0] = 5;
sums[1,1] = 5;
sums[1,2] = sums[1,0] + sums[1,1];
// 3 + 2 = 5
sums[2,0] = 3;
sums[2,1] = 2;
sums[2,2] = sums[2,0] + sums[2,1];
// 2 + 2 = 4
sums[3,0] = 2;
sums[3,1] = 2;
sums[3,2] = sums[3,0] + sums[3,1];
你也可以使用一个类来达到最干净的效果。
private List<Equation> sums = new List<Equation>();
public MyConstructor() {
sums.Add(new Equation(5, 5));
Console.WriteLine (sums[0].a + " + " + sums[0].b + " = " + sums[0].sum);
}
private class Equation {
public int a;
public int b;
public int sum {
get { return a + b; }
}
public Equation(int a, int b) {
this.a = a;
this.b = b;
}
}