连续自然数之和问题(多种解法)
2007-10-19 15:10
204 查看
/**//*
对一个给定的自然数M,求出所有的连续的自然数段(连续个数大于1),这些连续的自然数段中的全部数之和为M。
例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解。
输入格式 Input Format
包含一个整数的单独一行给出M的值(10 <= M <= 2,000,000)
输出格式 Output Format
每行两个自然数,给出一个满足条件的连续自然数段中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定的输入数据,保证至少有一个解。
*/
#include <stdio.h>
int main(void)
...{
long i,j,k,m ;
scanf("%ld",&m) ;
k = m/2+1 ;
for(i=1 ;i <=k ; i++)
for(j=i+1; j<=m ; j++)
if( (j-i+1)*(i+j)/2 >=m )
...{
if ( (j-i+1)*(i+j)/2 == m )
...{
printf("%ld %ld ",i,j);
}
break ;
}
system("pause");
return 0 ;
}
/**//////////////////////////////////////////////////
#include <stdio.h>
int main()
...{
register long i,n,t,f,g;
scanf("%ld",&n);
for(i=n;i>1;i--)
...{
if(((f=n<<1))%i==0 && ((t=f/i+1-i))%2==0 && (g=t>>1)>0)
printf("%ld %ld ",g,g+i-1);
}
return 0;
}
相关文章推荐
- hdu1043 Eight (八数码问题,多种解法)
- 巴塞尔问题(Basel problem)的多种解法——怎么计算$\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{3^2}+\cdots$ ?
- 一个问题的多种解法:
- 八数码问题(typedef int state[9];)(多种解法)
- 一个简单文本处理问题的多种解法
- 【动态规划】 Google面试题 爬楼梯问题 斐波那契问题的多种解法
- HDU 1043 八数码问题的多种解法
- 棋盘覆盖综合性问题,多种解法
- 编程之美问题之二叉树层序遍历多种解法
- 洗牌问题(多种解法以高效解法)
- 八数码问题多种解法比较(poj1077宽搜,双向宽搜,A*,IDA*+扩展)(持续更新)
- 一个枚举问题的多种解法
- MATLAB电路问题的多种解法
- 编程之美问题之二叉树层序遍历多种解法
- Word Search问题及解法
- hdu 1007 最近点对问题(Splay解法)
- 八皇后问题的扩展,任意数量皇后问题的较快速解法
- Evaluate Division问题及解法
- 使用位移解决多种客户端显示问题
- leetcode [Intersection of Two Linked Lists]//待整理多种解法