题目:

一定数目的点或圆在等距离的排列下可以形成一个等边三角形,这样的数被称为三角形数。

前 66 个三角形数分别为 1,3,6,10,15,211,3,6,10,15,21。

第 n� 个三角形数是从 11 开始的 n� 个自然数的和,即 n(n+1)2�(�+1)2。

给定一个正整数 x�,请你判断 x� 能否表示为两个三角形数(可以相同)的和。

输入格式

一个正整数 x�。

输出格式

如果 x� 可以表示为两个三角形数之和,则输出 YES,否则输出 NO

数据范围

前 66 个测试点满足 1≤x≤10001≤�≤1000。
所有测试点满足 1≤x≤1091≤�≤109。

输入样例1:

256

输出样例1:

YES

输入样例2:

512

输出样例2:

NO

C++ 完整代码:

#include<bits/stdc++.h>//万能头文件

using namespace std;

//二分函数:
int erfen(int l,int r,int h)//用递归写二分;l是左端点,r是右端点,h是我们要找的值;
{
    int m;//m是二分中间值,
    m=(l+r)/2;//得到中间值
    if(m*(m+1)==h)//  h /2 = (x-a[i])  ;  当  h  =  m*(m+1) 时,成功得到结果m;
     {
        return m;
    }
    else
    {
        if(l>r)
        return -1;
        if(m*(m+1)<h)
        {
            return erfen(m+1,r,h);
        }
        else
        {
            return erfen(l,m-1,h);
        }
    }

}

int main()//主函数
{
    int x,m,h,j=1;
    const int n=50000;
    int a[n];
    cin>>x;

for(int i=1;i<50000;i++) //我们第一步暴力循环1到50000;
    {
        a[i] = i*(i + 1) / 2; //套公式

        h=(x-a[i])*2;
        if(h<=0)
        continue;
        else
        m=erfen(1,50000,h);//我们第二步二分查找结果是否存在;
        if(m!=-1)
        {
            cout<<"YES"<<endl;
            j=0;
            break;
        }

    }
    if(j==1)
    cout<<"NO"<<endl;
    return 0;
}

作者:为国争光
链接:https://www.acwing.com/activity/content/code/content/6626565/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

三角形数----Acwing 110周赛相关推荐

  1. 每一个正整数可以表示为3个三角形数之和

    题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5231 题意:给定一个正整数,其中,把用最少的三角形数之和来表示,输出它们 ...

  2. 三角形数、五边形数和六角形数

    三角形数.五边形数和六角形数分别由以下公式给出: 三角形数 Tn=n(n+1)/2 1, 3, 6, 10, 15, - 五边形数 Pn=n(3n−1)/2 1, 5, 12, 22, 35, - 六 ...

  3. Problem K: 三角形数

    Problem K: 三角形数 Description 古希腊著名科学家毕达哥拉斯把数目为1,3,6,10,15,21--这些数量的石子,都可以排成三角形,像这样的数称为三角形数.例如,前4个三角形数 ...

  4. 类似三角形数的一般推导公式

    说明:作者知识水平有限,如有错误,感谢指正. 类似三角形数 定义 形如三角形数的一组数,相邻的两个数之间依次相差,如果从到构成的数列为等差数列,那么称这组数为类似三角形数.称等差数列的公差叫类似三角形 ...

  5. hdu 5312 Sequence(数学推导——三角形数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others)  ...

  6. 欧拉工程第12题 第一个拥有超过500个约数的三角形数是多少

    题目 三角形数序列是由对自然数的连加构造而成的.所以第七个三角形数是1+2+3+4+5+6+7=281+2+3+4+5+6+7=28. 那么三角形数序列中的前十个是: 1,3,6,10,15,21,2 ...

  7. 毕达哥拉斯 三角形数和正方形数

    如题: 古希腊著名的毕达哥拉斯学派把1.3.6.10-这样的数称为"三角形数",而把1.4.9.16的称为"正方形数",从图中可以发现,任何一个大于1的&quo ...

  8. 毕达哥拉斯三角形数,unsignedlong long long

    1.毕达哥拉斯三角形数,运用了unsigned long long的数据类型,用来储存较大的数,"%llu" 注意k为奇数,还是偶数,这决定了它是否可以/2: k(k+1)/2: ...

  9. 完全数(亏数、盈数)、三角形数、棱锥体数、正方形数

    所有的完全数都是三角形数: 1. 完全数与亏数.盈数 1.1 完全数 如果一个数恰好等于它的因子之和,则称该数为"完全数".各个小于它的约数(真约数,列出某数的约数,去掉该数本身, ...

最新文章

  1. Ubuntu Linux将支持所有树莓派设备
  2. gitlab将分支代码合并到master上
  3. 零基础Unreal Engine 4(UE4)图文笔记之粒子系统
  4. Mac系统上安装Composer
  5. Redis慢日志问题解决
  6. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]
  7. android+JPEG+编码,Android_解析:android 如何从JPEG生成BufferedImage,如下所示:复制代码 代码如下 - phpStudy...
  8. solr 配置中文分析器/定义业务域/配置DataImport功能(测试用)
  9. ppt上的倒计时小工具_英孚线上精品小班课平台操作指南这些课堂小工具你都知道吗?更多课前指引看这里!...
  10. mysql自增id 重置
  11. p39最大子数组问题o(lgn)
  12. 为什么阿里不推荐使用MySQL分区表?
  13. k8s多master集群拓扑
  14. 深入浅出Zookeeper集群搭建
  15. 无法进入网页版小木虫
  16. Python小姿势 - Python爬取网页数据
  17. 数据提取方法-数据提取的概念和数据的分类
  18. 18天精读掌握《费曼物理学讲义卷一》 第10天 2019/6/26
  19. 艾为aw87359 PA 关机状态下会漏电
  20. 用户6.5亿 墨迹天气难舍现金贷广告:合作方仅小米贷款

热门文章

  1. 关于黑苹果系统的耳机声音模糊不清问题
  2. Linux内存从0到1学习笔记(11.2 内存优化方案之内存压缩zram)
  3. 【性能】【内存】zram解读
  4. FPGA学习笔记 -- 状态机
  5. NI(美国国家仪器)二面
  6. 【云存储】Go项目实践(Fedora、GlusterFS、ownCloud)
  7. JS 基本数据类型之 BigInt 的知识点
  8. 抖音背后的黑科技究竟是什么?
  9. OFFICE | word 图片颜色统一处理
  10. Wiz为知 - 简洁实用的知识笔记管理软件