问题描述

78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27。
  输入一个正整数 n(<=10000)
  输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+1)+…+b=n。
  对于多种表示法,a小的方案先输出。
例子

样例输入
78
样例输出
1 12
18 21
25 27
数据规模与限制

时间限制:1.0s 内存限制:256.0MB
提示

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。

思路:

只需要用两个循环找出两个数,然后再用一个循环判断这两个数之间的数相加等不等于n就行了。
不过有趣的是,如果不加一些条件,输出结果时就会超时。
在下面会用3段代码举例子。
1)超时代码:

#include <stdio.h>
int main ()
{int n;scanf("%d",&n);int i,j,k,sum;for(i=1;i<n;i++){for(j=i+1;j<n;j++){sum=0;for(k=i;k<=j;k++){sum+=k;}if(sum == n){printf("%d %d\n",i,j);break;}}}return 0;}


可以看到基本都超时了。

2)不超时的AC代码:

#include <stdio.h>
int main ()
{int n;scanf("%d",&n);int i,j,k,sum;for(i=1;i<n;i++){for(j=i+1;j<n;j++){sum=0;for(k=i;k<=j;k++){sum+=k;if(sum>n)//如果发现大于n了,那么后面的一定都大于n,break;break;}if(sum == n){printf("%d %d\n",i,j);break;}}}return 0;}


发现基本都大于100ms,能不能更快呢?
3)比较高效率的代码

#include <stdio.h>
int main ()
{int n;scanf("%d",&n);int i,j,k,sum;int flag=0;for(i=1;i<n;i++){flag=0;for(j=i+1;j<n;j++){sum=0;for(k=i;k<=j;k++){sum+=k;if(sum>n){flag = 1;//如果超过了,那么下一层循环肯定也会超过,做出标记,在下一层循环也直接break;break;}}if(flag==1)//如果发现标记了,就break;break;if(sum == n){printf("%d %d\n",i,j);break;}}}return 0;}


可以看到基本都在1ms了,一个简单的优化就可以节约约百毫秒,还挺有趣的…

蓝桥杯 算法训练 - 连续正整数的和 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27。   输入一个正整数 n(<=10000)   输出 m 行(n有m相关推荐

  1. java 蓝桥杯算法训练 连续正整数的和(题解)

    试题 算法训练 连续正整数的和 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27. 输入一个正 ...

  2. 蓝桥杯 算法训练 印章

    蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...

  3. 蓝桥杯算法训练 礼物(java,个人想法,递归找临界点)

    蓝桥杯算法训练 礼物(java,个人想法,递归找临界点) 问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友. 在走出了怪物森林以后,JiaoSho ...

  4. 蓝桥杯算法训练 印章

    蓝桥杯 算法训练 印章 问题描述 ​ 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 ​ 一行两个正整数n和m 输出格式 ​ 一个实数P表示答案,保 ...

  5. 蓝桥杯算法训练sticks

    持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀. 文章目录 题目 题解 数据传送阵 代码传送阵 题目 George took sticks of the same length and cut th ...

  6. 蓝桥杯 算法训练 幸运的店家

    蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...

  7. 蓝桥杯 算法训练 Beaver's Calculator

    蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...

  8. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  9. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

最新文章

  1. 中兴f477v2超级管理员_中兴F650光猫修复
  2. torch.view()
  3. gin-vue-blog自建博客
  4. 详细透彻的分析DM9000网卡驱动程序(3)
  5. 国家特级数学教授李毓佩:我们欠孩子真正的数学阅读 !
  6. linux下tomcat部署java web项目_求助帖 linux服务器 tomcat部署javaweb项目问题
  7. mysql获取逻辑日志_Mysql 逻辑架构图及日志系统
  8. 怎么在ASP.NET 2.0中使用Membership
  9. CentOS7设置静态ip地址的两种方式
  10. HTTP请求报头中各个字段的含义
  11. 求ucinet软件下载资源!!!!
  12. C#实现目录跳转(TreeView和SplitContainer)
  13. GOP之M和N值介绍
  14. 每日英语:Etiquette Catches On in China, Even in Government
  15. c语言2级考试题下载,C语言二级考试题库
  16. MySQL插入数据的多种方式
  17. html的视频字幕制作步骤,视频滚动字幕怎么制作(上)
  18. 土木工程结构力学————虚功原理
  19. HDU 1234 开门人和关门人
  20. 盒子科技笔试Java_丰巢科技 Java高级笔试面试题 PDF 下载

热门文章

  1. 软著申请所需资料整理(软件著作权)
  2. 【SQL怎么写】查询同一张表中同一个ID对应最新时间的数据记录
  3. LeetCode680删除一个字符后是否还是回文字符串
  4. iview upload爬坑 之手动上传以及动态修改附带参数 附后台接受测试代码
  5. 【定义】向量与向量组
  6. jbpm学习笔记(九) task活动之泳道的概念
  7. Spring data JPA 笔记
  8. Servlet_Jsp学习笔记:
  9. POI生成word文档,图片显示为空白或不显示
  10. 盒子模型(CSS重点)