题目

给出一个正整数N,将N写为若干个连续数字和的形式(长度 >= 2)。例如N = 15,可以写为1 + 2 + 3 + 4 + 5,也可以写为4 + 5 + 6,或7 + 8。如果不能写为若干个连续整数的和,则输出No Solution。

输入

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

输出

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

输入样例

15

输出样例

1
4
7

思路:

设若干连续数字和的首项为 a,则有:a+(a+1)+(a+2)+...+(a+k)=n,共有 k 项

即:

化简有:

由于 a 最小为 1,那么当 a=1 时有:

因此,

故而从 开始枚举到 3,当 i 满足  时,输出  即可

源程序

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define EPS 1e-9
#define PI acos(-1.0)
#define INF 0x3f3f3f3f
#define LL long long
const int MOD = 1E9+7;
const int N = 50000+5;
const int dx[] = {-1,1,0,0};
const int dy[] = {0,0,-1,1};
using namespace std;int main() {int n;scanf("%d",&n);int flag=false;for(int i=sqrt(2.0*n);i>=2;i--){if((n-i*(i-1)/2)%i==0){printf("%d\n",(n-i*(i-1)/2)/i);flag=true;}}if(!flag)printf("No Solution\n");return 0;
}

连续整数的和(51Nod-1138)相关推荐

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

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

  2. 51NOD 1138 连续整数的和

    点击打开链接 给出一个正整数N,将N写为若干个连续数字和的形式(长度 >= 2). 例如N = 15,可以写为1 + 2 + 3 + 4 + 5,也可以写为4 + 5 + 6,或7 + 8. 如 ...

  3. 51nod 1617 奇偶数组

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 带进度条的ASP无组件断点续传下载代码
  2. How To Open An URL In Android’s Web Browser
  3. 2048游戏-AI程序算法分析
  4. SQL中的CASE WHEN用法
  5. Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
  6. 一个控制器怎么转发到另外一个控制器_楼宇自动化系统(BAS),DDC,一个最核心的控制器...
  7. bundle文件解压_通过sourcemap解压缩webpack 实战
  8. jquery getjson php,jquery中调用php json函数的方法分享
  9. android 平板怎么截图,平板电脑怎么截图 平板电脑截图方法【详解】
  10. WindowServer2003中IIS6.0允许运行32位程序
  11. Convert to RINEX安装及简单使用
  12. 华为交换机初始化_华为交换机初始设置
  13. 华为连接wifi显示wifi未连接服务器,华为手机连接WIFI但是无法上网怎么解决
  14. 跑步时戴什么耳机好、最适合跑步用的耳机
  15. 《人工智能及其应用》练习题
  16. 渲染性能优化之Culling 剔除
  17. 百度BML飞桨训练营(十)面部表情迁移PaddleGAN--蒙娜丽莎在微笑
  18. Java 进程启停及诊断 Jarboot大改版、焕然一新
  19. DNS提示错误无法上网怎么办?苹果电脑如何修改DNS?
  20. python pyttsx3实现文字朗读

热门文章

  1. 解决在全文搜索中搜索中文字符
  2. 干货收藏!一文看懂8个常用Python库从安装到应用
  3. 不修条地铁,都不好意思叫自己大城市
  4. FreeRTOS任务延时函数
  5. CANOpen同步报文
  6. java插入数据库字符串拼接_java中PreparedStatement解决需转义字符向数据库中插入时的转义问题 | 学步园...
  7. python图片转字符_二十行python代码实现图片转字符
  8. 从国内的996,到美国的朝9晚5,真的这么惬意吗?
  9. 互联网公司常用MySQL分库分表方案
  10. 【支付宝服务窗】JEECG支付宝服务窗平台指南