ALGO-118_蓝桥杯_算法训练_连续正整数的和

问题描述
  78这个数可以表示为连续正整数的和,++,+++,++。
  输入一个正整数 n(<=)
  输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+)+...+b=n。
  对于多种表示法,a小的方案先输出。
样例输入 样例输出

解题思路:

枚举i=1-n的数

以i为起点,枚举j=i-n的值,并累加j,当加j后的值大于n,跳出

输出i和j-1(j由于在循环中会多加一次),即累加该区间的值可以得到n

AC代码:

 #include <stdio.h>

 int main(void)
{
int n;
int i,j,k;
scanf("%d",&n);
for (i = ; i <= n/ ; i ++)
{
k = ;/*用于计算累加值*/
for (j = i ; k+j <= n ; j ++)
{
k += j;
}
if (k == n)
{
printf("%d %d\n",i,j-);
}
} return ;
}
上一篇:csdn 站点使用


下一篇:【BAT经典算法面试题系列】求和为n的连续正整数