zoukankan      html  css  js  c++  java
  • ZOJ 3935 2016

    In mathematics, a polygonal number is a number represented as dots or pebbles arranged in the shape of a regular polygon. The dots are thought of as alphas (units). These are one type of 2-dimensional figurate numbers. The following picture shows how triangular numbers, square numbers, pentagonal numbers and hexagonal numbers represented as dots arranged in the shape of corresponding regular polygon.

    Polygonal Numbers: Triangular, Square, Pentagonal and Hexagonal numbers
    2016 is not only a leap year but also a triangular and hexagonal year. If you are patient enough, you can count the number of the dots in the left triangle or in the right hexagon in the following picture. The number of dots in each shape is 2016.

    2016 is a triangular-hexagonal-leap year
    Therefore, 2016 is a triangular-hexagonal-leap year. The previous triangular-hexagonal-leap year is 1540 and the next is 2556. So living to see 2016 is very rare experience.

    You task is to list the triangular-hexagonal-leap years from 2016 to 990528. 990528 is also a triangular-hexagonal-leap year.

    Input

    This problem has no input.

    Output

    Please print each triangular-hexagonal-leap year in increasing order.

    For example, if you are asked to list the triangular-hexagonal-leap years from 780 to 2556, the output should be:

    780
    1128
    1540
    2016
    2556
    Sample Output

    2016
    2556
    … <– some lines are skipped
    990528

    #include <iostream>
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <algorithm>
    #include <math.h>
    #include <queue>
    
    using namespace std;
    int a[10005];
    int b[10005];
    int judge(int x)
    {
        if(x%4==0&&x%100!=0||x%400==0)
            return 1;
        else
            return 0;
    }
    int main()
    {
        for(int i=1;i<=10000;i++)
        {
    
                a[i]=(i*(i+1))/2;
        }
        for(int i=1;i<=10000;i++)
        {
    
                b[i]=i*(2*i-1);
        }
        int k=0;
        for(int i=63;i<=10000;i++)
        {
             for(int j=32;j<=10000;j++)
             {
                 if(a[i]==b[j]&&judge(a[i]))
                 {
    
                     printf("%d
    ",a[i]);
                     if(a[i]==990528)
                         k=1;
                     break;
                 }
    
             }
             if(k)
                 break;
        }
        return 0;
    }
  • 相关阅读:
    YaCy is a free search engine
    html css js dom树到底是什么关系
    清华的搜索课程
    Gentle中的O/R映射Attributes
    PHP headers_sent() 函数
    阿里云服务器怎么设置能让网站发邮件
    关于PHP 开启zlib gzip配置
    thinkphp无法加载控制器:Admin
    阿里云邮件服务器怎么设置才能在QQ邮箱访问,互发邮件?
    linux下配置apachenutch 笨笨熊
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228727.html
Copyright © 2011-2022 走看看