7-44 ZJW系列之电玩积木 (10 分)

某日下午,阳光正好,ZJW和室友来到台中最大的一中街商圈,一中街除了吃的很多,玩的更是多样,ZJW转角来到一个电玩商场,看到在柜角放着一个电玩积木,图形如下图所示: 20161124.jpg

因为电玩积木搭得实在是太有规律了,你只要知道它的层数就可以计算电玩积木中所有小积木的数量了。 现在请聪明的acmer写个程序来帮助ZJW,给你一个电玩积木的层数,求出这个电玩积木中所有小积木的总数量。

输入格式:
输入T,表示T组数据(T<=10),T=0时输入结束。 接下来输入T组数据,每组数据只有一个正整数 ,表示这个电玩积木的层数n(n <=200)。

输出格式:
对应每个输入的层数有一个输出,表示这个电玩积木中所有小积木的总数量,每个输出占一行。

图片我看不到啊

某日下午,阳光正好,ZJW和室友来到台中最大的一中街商圈,一中街除了吃的很多,玩的更是多样,ZJW转角来到一个电玩商场,看到在柜角放着一个电玩积木,图形如下图所示:
20161124.jpg

因为电玩积木搭得实在是太有规律了,你只要知道它的层数就可以计算电玩积木中所有小积木的数量了。
现在请聪明的acmer写个程序来帮助ZJW,给你一个电玩积木的层数,求出这个电玩积木中所有小积木的总数量。

输入格式:
输入T,表示T组数据(T<=10),T=0时输入结束。
接下来输入T组数据,每组数据只有一个正整数 ,表示这个电玩积木的层数n(n <=200)。

输出格式:
对应每个输入的层数有一个输出,表示这个电玩积木中所有小积木的总数量,每个输出占一行。

输入样例:
在这里给出一组输入。例如:

2
1
5
0
输出样例:
在这里给出相应的输出。例如:

1
35
这个题目其实不难,关键在于找到问题的规律,第一层是1个,第二层是4个也就是1+3个,第三层是1+3+6个,第四个是1+3+6+10个,可以看到,每层增加的个数分别是1,3,6,10,增加的个数是上一层增加个数加上他的层数,所以我们可以明白s[n] = s[n-1]+x[n],s[n]是每层的个数,x[n]是增加的个数,x[n] = x[n]+n;由此得出解体的答案。

class Program
{
    static void Main(string[] args)
    {
        int[] f = new int[200];
        f[0] = 1;
        int[] add = new int[200];
        add[0] = 1;
        for(int r = 1; r < f.Length; r++)
        {
            add[r] = add[r - 1] + r + 1;
            f[r] = f[r - 1] +add[r];
        }

        int T = Convert.ToInt32(Console.ReadLine());
        while (T != 0)
        {
            for (int t = 0; t < T; t++)
            {
                int n = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(f[n - 1]);
            }
            T = Convert.ToInt32(Console.ReadLine());
        }
    }
}

}