fjnu 1757 找i个连续自然数累加为N

来源:互联网 发布:创维21d9bh数据下载 编辑:程序博客网 时间:2024/05/18 02:13

Description

输入一个数字N,找出i个连续自然数累加为N的所有和式(i>1)。

Input

整数N

Output

N=i个连续自然数累加和式。多解时每个式子占一行,按i从大到小的顺序输出

Sample Input

15

 

Sample Output

15=1+2+3+4+515=4+5+615=7+8

KEY:硬搜,慢慢来

 

Source:

#include
<iostream>
using namespace std;

int N;
int t1,t2;

int isAdd(int s)
{
    
int i;
    
int sum=0;
    
for(i=s;i<=N;i++)
    
{
        sum
+=i;
        
if(sum==N) return i;
        
if(sum>N) return 0;
    }

    
return 0;
}


void output(int s,int e)
{
    cout
<<N<<"=";
    
int i;
    
for(i=s;i<e;i++)
        cout
<<i<<"+";
    cout
<<i<<endl;
}


void fun()
{
    
int i;
    
for(i=1;i<N;i++)
    
{
        
int t=isAdd(i);
        
if(t==0continue;
        
else
        
{
            t1
=i;
            t2
=t;
            output(t1,t2);
        }

    }

}


int main()
{
    cin
>>N;
    fun();
    
return 0;
}

 
原创粉丝点击