点击打开链接

给出一个正整数N,将N写为若干个连续数字和的形式(长度 >= 2)。

例如N = 15,可以写为1 + 2 + 3 + 4 + 5,也可以写为4 + 5 + 6,或7 + 8。

如果不能写为若干个连续整数的和,则输出No Solution。


Input

输入1个数N(3 <= N <= 10^9)。

Output

输出连续整数中的第1个数,如果有多个按照递增序排列,如果不能分解为若干个连续整数的和,则输出No Solution。

Sample Input

15

Sample Output

1
4
7

解题思路:

因为它是连续的序列所以他一定是一个公差为 1 的等差数列,那么输入的 x 就满足

x=a1*n+n*(n-1)/2;

所以 我们要求的就是a1,所以 a1可以解得:

a1=( 2*x-n*(n-1) ) / 2*n

首项为1,公差为1的等差数列求和公式为:x=(n+1)*n/2

那么我们只需要从 2*sqrt(n)开始判断就行了    for(int i=sqrt(n)*2; i>=2; i–)

又因为不能是单独的一个数,所以是>=2。

#include<bits/stdc++.h>
#include<bitset>
#include<cmath>
using namespace std;
const int maxn=1e5+5;int main()
{ios::sync_with_stdio(0);int x;while(cin>>x){bool flag=0;int m=2*(int)sqrt(x);for(int n=m;n>=2;n--){if((2*x-n*(n-1))%(2*n)==0&&(2*x-n*(n-1))>0)cout<<(2*x-n*(n-1))/(2*n)<<endl,flag=1;}if(!flag)   cout<<"No Solution\n";}return 0;
}

51NOD 1138 连续整数的和相关推荐

  1. 51nod 1138 连续整数的和(数学公式)

    1138 连续整数的和 #include <iostream> #include <cmath> #include <cstdio> using namespace ...

  2. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  3. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

  4. C语言接收一个整数划分成5的倍数,整数划分为连续整数;整数划分

    参考博客:http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1192308.html 1.整数划分为连续整数: 如将15划分为连续整数之和: 15 ...

  5. 51nod 1040:最大公约数之和(数论)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. ...

  6. 1138: 零起点学算法45——求最大值

    1138: 零起点学算法45--求最大值 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld Submitted: 1691  ...

  7. (DP)51NOD 1183 编辑距离

    编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除 ...

  8. 斜率小于0的连线数量 51Nod - 1107 (树状数组+离散化)

    二维平面上N个点之间共有C(n,2)条连线.求这C(n,2)条线中斜率小于0的线的数量. 二维平面上的一个点,根据对应的X Y坐标可以表示为(X,Y).例如:(2,3) (3,4) (1,5) (4, ...

  9. 51Nod 1003 阶乘后面0的数量(数学,思维题)

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...

最新文章

  1. TVM Reduction降低算力
  2. 2019年计算机视觉将继续承担哪些作用?
  3. Effective Java 之个人总结
  4. 计算机网络 ip协议是,计算机网络知识:TCP/IP协议
  5. leetcode 263. 丑数(Java版)
  6. breakcontinue
  7. Java案例:统计文本中所有整数之和
  8. TCP通过带外数据实现心跳检测机制
  9. 闲着看看jquery.ajax源码
  10. mysql 因单个表过大导致导入数据库失败
  11. 《HTML CSS设计与构建网站》书评之-异类的风格,不一样的效果
  12. ddr4 dqs 频率_ddr4
  13. windows 错误代码2
  14. win10系统预加载服务器,等等, 你的win10关闭了这几个服务, 会流畅许多
  15. mysql new用法_MySQL触发器之 new 和 old 的理解
  16. 面试常问:什么是红黑树?
  17. 【深浅拷贝的实现方式】
  18. 谁说程序员不懂浪漫,表白代码来啦~
  19. 大摩赐与当当网股票持股不雅望评级
  20. 2019年除夕夜的有感而发

热门文章

  1. 什么时候加上android.intent.category.DEFAULT和LAUNCHER
  2. 301转向和网址规范化
  3. GCD介绍(一): 基本概念和Dispatch Queue
  4. QTP自动化测试视频系列
  5. android 判断 飞行模式,如何在Android上检测飞行模式?
  6. esp8266 防掉线方法_esp8266 smartconfig-智能配网分析和使用及注意事项
  7. 最java大子矩阵和问题_最大子矩阵问题实例解析
  8. VMWare 黑苹果卡在Logo页面
  9. 1.搭建Spring环境
  10. nginx无法访问index.html,ThinkPHP5 + nginx配置(index.php无法访问404)