三角形数----Acwing 110周赛
题目:
一定数目的点或圆在等距离的排列下可以形成一个等边三角形,这样的数被称为三角形数。
前 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周赛相关推荐
- 每一个正整数可以表示为3个三角形数之和
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5231 题意:给定一个正整数,其中,把用最少的三角形数之和来表示,输出它们 ...
- 三角形数、五边形数和六角形数
三角形数.五边形数和六角形数分别由以下公式给出: 三角形数 Tn=n(n+1)/2 1, 3, 6, 10, 15, - 五边形数 Pn=n(3n−1)/2 1, 5, 12, 22, 35, - 六 ...
- Problem K: 三角形数
Problem K: 三角形数 Description 古希腊著名科学家毕达哥拉斯把数目为1,3,6,10,15,21--这些数量的石子,都可以排成三角形,像这样的数称为三角形数.例如,前4个三角形数 ...
- 类似三角形数的一般推导公式
说明:作者知识水平有限,如有错误,感谢指正. 类似三角形数 定义 形如三角形数的一组数,相邻的两个数之间依次相差,如果从到构成的数列为等差数列,那么称这组数为类似三角形数.称等差数列的公差叫类似三角形 ...
- hdu 5312 Sequence(数学推导——三角形数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5312 Sequence Time Limit: 2000/2000 MS (Java/Others) ...
- 欧拉工程第12题 第一个拥有超过500个约数的三角形数是多少
题目 三角形数序列是由对自然数的连加构造而成的.所以第七个三角形数是1+2+3+4+5+6+7=281+2+3+4+5+6+7=28. 那么三角形数序列中的前十个是: 1,3,6,10,15,21,2 ...
- 毕达哥拉斯 三角形数和正方形数
如题: 古希腊著名的毕达哥拉斯学派把1.3.6.10-这样的数称为"三角形数",而把1.4.9.16的称为"正方形数",从图中可以发现,任何一个大于1的&quo ...
- 毕达哥拉斯三角形数,unsignedlong long long
1.毕达哥拉斯三角形数,运用了unsigned long long的数据类型,用来储存较大的数,"%llu" 注意k为奇数,还是偶数,这决定了它是否可以/2: k(k+1)/2: ...
- 完全数(亏数、盈数)、三角形数、棱锥体数、正方形数
所有的完全数都是三角形数: 1. 完全数与亏数.盈数 1.1 完全数 如果一个数恰好等于它的因子之和,则称该数为"完全数".各个小于它的约数(真约数,列出某数的约数,去掉该数本身, ...
最新文章
- Ubuntu Linux将支持所有树莓派设备
- gitlab将分支代码合并到master上
- 零基础Unreal Engine 4(UE4)图文笔记之粒子系统
- Mac系统上安装Composer
- Redis慢日志问题解决
- P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]
- android+JPEG+编码,Android_解析:android 如何从JPEG生成BufferedImage,如下所示:复制代码 代码如下 - phpStudy...
- solr 配置中文分析器/定义业务域/配置DataImport功能(测试用)
- ppt上的倒计时小工具_英孚线上精品小班课平台操作指南这些课堂小工具你都知道吗?更多课前指引看这里!...
- mysql自增id 重置
- p39最大子数组问题o(lgn)
- 为什么阿里不推荐使用MySQL分区表?
- k8s多master集群拓扑
- 深入浅出Zookeeper集群搭建
- 无法进入网页版小木虫
- Python小姿势 - Python爬取网页数据
- 数据提取方法-数据提取的概念和数据的分类
- 18天精读掌握《费曼物理学讲义卷一》 第10天 2019/6/26
- 艾为aw87359 PA 关机状态下会漏电
- 用户6.5亿 墨迹天气难舍现金贷广告:合作方仅小米贷款