题目思路

  • 由题干可知输出为等差数列,且公差d=1,Sn=N,项数>L;
  • 则由求和公式转换可知a1(a1为正整数)的值,在根据遍历所得项数即可输出;
    图片说明

a1=(2Sn-n*(n-1))/2n

#include <iostream>
using namespace std;
int main(){
    int n,l;
    cin>>n>>l;
    for(int i = l;i<=100;i++){
        if((2*n+i-i*i)%(2*i)==0){
            int temp = (2*n+i-i*i)/(2*i);
            for(int j = 0;j<i;j++){
                cout<<temp++<<" ";
            }
            return 0;
        }
    }
    cout<<"No"<<endl;
    return 0;
}