读书人

zoj1239 Hanoi Tower Troubles Again

发布时间: 2013-02-25 10:23:36 作者: rapoo

zoj1239 Hanoi Tower Troubles Again!

The player should place one ball on the top of a peg at a time. He should first try ball 1, then ball 2, then ball 3... If he fails to do so, the game ends. Help the player to place as many balls as possible. You may take a look at the picture above, since it shows us a best result for 4 pegs.


Input

The first line of the input contains a single integer T, indicating the number of test cases. (1<=T<=50) Each test case contains a single integer N(1<=N<=50), indicating the number of pegs available.


Output

For each test case in the input print a line containing an integer indicating the maximal number of balls that can be placed. Print -1 if an infinite number of balls can be placed.


Sample Input

2
4
25


Sample Output

11
337

给出n个柱子,从第一个柱子开始放珠子,珠子编号从1开始,要求每个柱子上相邻两个珠子的和是可开方的。

#include<stdio.h>#include<math.h>#include<string.h>int a[55];int main(){    int t;    scanf("%d",&t);    while(t--)    {        memset(a,0,sizeof(a));        int n;        scanf("%d",&n);        int poit=1;        int s=1;        while(1)        {            if(poit>n)                break;            if(a[poit]==0)            {                a[poit]=s;                s++;                poit=1;                continue;            }            else            {                int b=a[poit]+s;                int c=sqrt(b);                if(c*c==b)                {                    a[poit]=s;                    s++;                    poit=1;                    continue;                }            }            poit++;        }        printf("%d\n",s-1);    }    return 0;}


读书人网 >网络基础

热点推荐