蓝桥杯 算法训练 - 连续正整数的和 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27。 输入一个正整数 n(<=10000) 输出 m 行(n有m
问题描述
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相关推荐
- java 蓝桥杯算法训练 连续正整数的和(题解)
试题 算法训练 连续正整数的和 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27. 输入一个正 ...
- 蓝桥杯 算法训练 印章
蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...
- 蓝桥杯算法训练 礼物(java,个人想法,递归找临界点)
蓝桥杯算法训练 礼物(java,个人想法,递归找临界点) 问题描述 JiaoShou在爱琳大陆的旅行完毕,即将回家,为了纪念这次旅行,他决定带回一些礼物给好朋友. 在走出了怪物森林以后,JiaoSho ...
- 蓝桥杯算法训练 印章
蓝桥杯 算法训练 印章 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案,保 ...
- 蓝桥杯算法训练sticks
持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀. 文章目录 题目 题解 数据传送阵 代码传送阵 题目 George took sticks of the same length and cut th ...
- 蓝桥杯 算法训练 幸运的店家
蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...
- 蓝桥杯 算法训练 Beaver's Calculator
蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...
- 蓝桥杯算法训练-24点(Python)
问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...
- 蓝桥杯——算法训练——数字三角形
蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...
最新文章
- 中兴f477v2超级管理员_中兴F650光猫修复
- torch.view()
- gin-vue-blog自建博客
- 详细透彻的分析DM9000网卡驱动程序(3)
- 国家特级数学教授李毓佩:我们欠孩子真正的数学阅读 !
- linux下tomcat部署java web项目_求助帖 linux服务器 tomcat部署javaweb项目问题
- mysql获取逻辑日志_Mysql 逻辑架构图及日志系统
- 怎么在ASP.NET 2.0中使用Membership
- CentOS7设置静态ip地址的两种方式
- HTTP请求报头中各个字段的含义
- 求ucinet软件下载资源!!!!
- C#实现目录跳转(TreeView和SplitContainer)
- GOP之M和N值介绍
- 每日英语:Etiquette Catches On in China, Even in Government
- c语言2级考试题下载,C语言二级考试题库
- MySQL插入数据的多种方式
- html的视频字幕制作步骤,视频滚动字幕怎么制作(上)
- 土木工程结构力学————虚功原理
- HDU 1234 开门人和关门人
- 盒子科技笔试Java_丰巢科技 Java高级笔试面试题 PDF 下载