2005年百度之星初赛题目第一题(连续正整数)
2011-06-14 10:46
155 查看
2005年百度之星程序设计大赛试题初赛题目
第一题(共四题 100 分):连续正整数( 10 分)
题目描述:一个正整数有可能可以被表示为 n(n>=2) 个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出 “NONE” 。
例如,对于 15 ,其输出结果是:
1 2 3 4 5
4 5 6
7 8
对于 16 ,其输出结果是:
NONE
评分标准:程序输出结果是否正确。
我的练习代码:
=============================================================================
第一题(共四题 100 分):连续正整数( 10 分)
题目描述:一个正整数有可能可以被表示为 n(n>=2) 个连续正整数之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
输出数据:在标准输出上打印出符合题目描述的全部正整数序列,每行一个序列,每个序列都从该序列的最小正整数开始、以从小到大的顺序打印。如果结果有多个序列,按各序列的最小正整数的大小从小到大打印各序列。此外,序列不允许重复,序列内的整数用一个空格分隔。如果没有符合要求的序列,输出 “NONE” 。
例如,对于 15 ,其输出结果是:
1 2 3 4 5
4 5 6
7 8
对于 16 ,其输出结果是:
NONE
评分标准:程序输出结果是否正确。
我的练习代码:
=============================================================================
#include <iostream> using namespace std; void print(int start, int n) { int i; cout << start; start++; for (i=2; i<=n; i++) { cout << " " << start; start++; } cout << endl; } int main() { //输入的整数 int a; //n为序列中数目的个数,sum为序列的和,first为序列第一个数,last为序列最后一个数 int first,last,n,sum,flag; bool findarray=false; cin >> a; if ((a & (a-1))==0) { cout << "NONE" << endl; return 0; } flag = a/2; //序列中第一个数可能的最大值 for (first=1; first<=flag; first++) { for (n=2; n<a;n++) { last= first+n-1; sum=n*(first+last)/2; if (sum > a) { break; } else if (sum == a) { findarray = true; print(first, n); } } } if (!findarray) { cout << "NONE" << endl; } return 0; }
相关文章推荐
- 2005年百度之星程序大赛初赛题目(连续正整数)
- 2005年百度之星程序设计大赛试题初赛题目的第一题(求出一个整数的连续整数的和)
- [百度之星] 2005年百度之星程序大赛初赛题目(重叠区间大小)
- 百度之星2005年初赛题目
- 2005年百度之星初赛第一题分析与解答
- 百度之星 2005年 初赛题目一 java 版本
- 2005年百度之星----挑战赛---初赛---连续正整数
- 2005年百度之星程序设计大赛试题初赛题目-题4
- 百度之星05-01【连续正整数】
- 2011年百度之星程序大赛初赛第一场题目(图标排列)
- 2005年百度之星程序设计大赛试题初赛题目 第四题(共四题 100 分):低频词过滤( 40 分)
- 2005年百度之星程序设计大赛试题初赛题目四的解答(低频词过滤)
- 2005年百度之星程序设计大赛初赛题目(2)
- 2015百度之星初赛(1)·找连续数·RMQ
- 程序员面试题目总结--数组(五)【数组的后面m个数移动为前面m个数、列的前n项数据、判断整数x是否可以表示成n个连续正整数的和、数组中出现奇数次的元素、二维数组中的查找】
- 园艺布置-百度之星2011初赛题目求解
- 百度之星初赛A第一题
- 2005年Goole编程大赛初赛题目二(750分)
- HDU 5246 超级赛亚ACMer(百度之星初赛第一题)
- 2005年百度之星预赛第一题