首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

zoj1239 Hanoi Tower Troubles Again

2013-02-25 
zoj1239 Hanoi Tower Troubles Again!The player should place one ball on the top of a peg at a time.

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


热点排行