一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。
#include<stdio.h>
void Fun(int n){
int a[1000]={0};
for(int i=1;i<=n;i++){
a[i]=a[i-1]+i;
}
int right=0;
int left=0;
while(right<=(n/2+1)){
if(a[right]-a[left]==n){
printf("%d",left+1);
for(int i=left+2;i<=right;i++){
printf("+%d",i);
}
printf("=%d\n",n);
right++;
}
if(a[right]-a[left]>n){
left++;
continue;
}
if(a[right]-a[left]<n){
right++;
}
}
}
int main(){
int n=0;
scanf("%d",&n);
Fun(n);
return 0;
}