输入一个数 写出它是连续数相加的所有情况,如下面一样
Please put in a dight(0<x)
123
--------------------------------------------------------------
61+62=123
40+41+42=123
18+19+20+21+22+23=123
---------------------------------------------------------------
exist 3 cases.
输入一个数 写出它是连续数相加的所有情况,如下面一样
Please put in a dight(0<x)
123
--------------------------------------------------------------
61+62=123
40+41+42=123
18+19+20+21+22+23=123
---------------------------------------------------------------
exist 3 cases.
#include<stdio.h>
int main()
{
int n,i,j,a;
printf("Please input a dight(>0)");
scanf("%d",&n);
for (i=2;i<=n/2;i++)
if ((n*2)%i==0)
{
if(((2*n/i-i+1)%2==0)&&((2*n/i-i+1>0)))
{
a=(2*n/i-i+1)/2;
printf("%d",a);
for (j=1;j<i;j++)
printf("+%d",a+j);
printf("\n");
}
}
return 0;
}
看看有无问题
#include <stdio.h>
int main(void)
{
long left, right;
long sum;
long GIVEN;
scanf("%ld",&GIVEN);
for (sum = 0, left = right = 1; left < GIVEN/2+1; right++)
{
sum += right;
while (sum > GIVEN)
{
sum -= left;
left++;
}
if (sum == GIVEN)
printf("%ld - %ld\n", left, right);
}
return 0;
}