某日下午,阳光正好,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());
}
}
}
}