使用总和填充数组/列表

时间:2012-04-28 21:43:15

标签: c# sum

如何使用不高于10的总和填充数组或列表? 我可以用3个数组做到这一点,其中2个数据包含答案不高于10的随机数,第3个数组用于获得答案。

但这是一种丑陋的做法。

要更清楚我想要的东西:

1 + 1 = 2
5 + 5 = 10
3 + 2 = 5

等等

用户最初只能看到1 + 1。当时间到了,用户就会看到答案。

那么有没有人有另一种解决方案,那么我即将试用?

2 个答案:

答案 0 :(得分:2)

你最有可能尝试做这样的事情。这已编译但未经测试。注意如何使用随机数生成器和减法创建这些对。

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。我通过了数学承诺

答案 1 :(得分:1)

您可以使用2D数组。

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;
    }
}