首页 > ACM题库 > HDU-杭电 > HDU 3422-Triangle-计算几何-[解题报告]HOJ
2014
03-23

HDU 3422-Triangle-计算几何-[解题报告]HOJ

Triangle

问题描述 :

K likes to play with the balls.That day he piled a triangle (n layers, layer 1 start,the first layer has 1 ball,the secode layer has 2 balls,……,the nth layer has n balls), but he felt uncomfortable after completion, and want to pile a right triangle, because he felt that the number 4 is a lucky one (because of “si ji fa cai”). So he decided to use 4 times of the balls he just used as a right-edge side of the right triangle(the three edges have no common factor).He only to pile the three edges,that is the middle is empty.But there will not have so many balls,so he wants to know the minimum of balls he must use.Now ,he turn to you for help.

输入:

The layer of the triangle as the promble describes n,1 <= n < 2^16

输出:

The layer of the triangle as the promble describes n,1 <= n < 2^16

样例输入:

1
2
3

样例输出:

9 5
27 13
53 25


The second case:
Let the right_edge promble describles is b ,The layer is 2,so b is 4 * (1 + 2) = 12.wo can know the edges of 
right triangle is 5 , 12 ,13.
So the minimum of balls he must use is (5 + 12 + 13 � 3) = 27

#include <stdio.h>

int main()
{
    long long i,j,n;
    while(scanf("%I64d",&n)!=EOF)
    {
        printf("%I64d %I64d\n",4*n*n+6*n-1,2*n*n+2*n+1);
    }
    return 0;
}

参考:http://blog.csdn.net/magicnumber/article/details/6641554


  1. #include <stdio.h>
    int main()
    {
    int n,p,t[100]={1};
    for(int i=1;i<100;i++)
    t =i;
    while(scanf("%d",&n)&&n!=0){
    if(n==1)
    printf("Printing order for 1 pages:nSheet 1, front: Blank, 1n");
    else {
    if(n%4) p=n/4+1;
    else p=n/4;
    int q=4*p;
    printf("Printing order for %d pages:n",n);
    for(int i=0;i<p;i++){
    printf("Sheet %d, front: ",i+1);
    if(q>n) {printf("Blank, %dn",t[2*i+1]);}
    else {printf("%d, %dn",q,t[2*i+1]);}
    q–;//打印表前
    printf("Sheet %d, back : ",i+1);
    if(q>n) {printf("%d, Blankn",t[2*i+2]);}
    else {printf("%d, %dn",t[2*i+2],q);}
    q–;//打印表后
    }
    }
    }
    return 0;
    }