连续正整数
来源:互联网 发布:登山鞋 徒步鞋 知乎 编辑:程序博客网 时间:2024/04/30 14:47
1820: 连续正整数
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 12 Solved: 7
[Submit][Status][Web Board]
Description
【问题描述】 有些正整数可以被表示为n(n>=2)个连续正整数之和,例如: 15=1+2+3+4+5 15=4+5+6 15=7+8 编写程序,从标准输入上读入一个不大于5000的正整数,找出和为该数的所有连续正整数序列,将相应的等式输出到标准输出上,每行一个等式,且不得重复输出。等式的左侧为输入的整数,右侧表达式中的数字以从小到大的顺序排列。如果结果有多个等式,按等式右侧最小正整数的升序输出。等式内各个字符相连,每个等式以换行符结束。如果没有符合要求的等式,输出“NONE”。
Input
【输入样例1】 15
【输入样例2】 16
Output
【输出样例1】
15=1+2+3+4+5
15=4+5+6
15=7+8
【输出样例2】
NONE
HINT
不要超时!支持java /C /C++
Source
一个大三的
想到上面写的这道题目!数据太大就超时了!原来这一题我
用vector存的,一开始数据小过了,老师一改数据就大了!
就不好使了,发一下原来的代码:
#include<cstdio>#include<iostream>#include<vector>using namespace std;int main(){ int n,i,j,sum,l,k,f; while(cin>>n) { f=0; for(i=1;i<=n/2;i++) { sum=i; vector<int>a; a.push_back(i); for(j=i+1;j<=n;j++) { sum+=j; a.push_back(j); if(sum>=n) { l=a.size(); if(sum==n) { f=1; cout<<n<<"="; for(k=0;k<l-1;k++) { cout<<a[k]<<"+"; } cout<<a[l-1]<<endl; } break; } } } if(f==0) { cout<<"NONE"<<endl; } }}
发一下现在的代码
#include<cstdio>#include<cmath>#include<iostream>using namespace std;int main(){ int n,m,sum,i,j,f; while(cin>>n) { m=n; f=0; for(i=(int)sqrt(2*m);i>=2;i--) { sum=m-i*(i-1)/2; if(sum%i==0) { f=1; cout<<n<<"="; for(j=sum/i;j<sum/i+i-1;j++) { cout<<j<<"+"; } cout<<sum/i+i-1<<endl; } } if(f==0) { cout<<"NONE"<<endl; } }}
0 0
- 连续正整数
- 连续正整数
- 连续正整数
- 连续正整数之和
- 连续正整数之和
- 连续正整数之和
- 连续正整数和 问题解答
- 连续正整数问题
- 连续正整数(1077)
- [BFUACM]连续正整数1077
- 连续正整数的和
- 连续正整数的和
- EOJ----连续正整数之和
- 正整数分解为n个连续正整数
- [算法]连续正整数问题(续)
- 【数论 / 数值】【RQNOJ】连续正整数
- 1077连续正整数解题报告
- 拆分为连续正整数之和
- [Win32SDK基本] 窗口详解(超详细)(续)(补充)
- 雨松MOMO UGUI 之 UI的深度学习(二)
- 线程的调度
- C++ 智能指针详解
- android开发者应该收藏的优秀博客和技术网站
- 连续正整数
- JavaScript 错误
- Win32多线程编程(1) — 基础概念篇
- 《大话设计模式》--OOTV杯超级模式大赛--模式总结(29-C)
- PHP 批量上传文件 大全
- [git]tig的安装及使用
- Win32多线程编程(2) — 线程控制
- MFC中各种指针的获取
- 用 verbose GC 分析 IBM WebSphere Portal 的内存问题