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

Description

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

Input

整数N

Output

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

Sample Input

15

 

Sample Output

15=1+2+3+4+5
15=4+5+6
15=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;
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值