题解 | #序列和#

序列和

http://www.nowcoder.com/practice/46eb436eb6564a62b9f972160e1699c9

//本题为序列和问题,输出为等差数列
//Sn=n*(a1+an)/2=n*a1+n*(n-1)*d/2
//a1=(2*Sn-n*(n-1))/(2*n)

#include<bits/stdc++.h>
using namespace std;

int main(){
int n=0;
int l=0;
scanf("%d",&n);
scanf("%d",&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);
        if(temp<0){
            cout<<"No"<<endl;
            return 0;
        }
        for(int j=0;j<i;j++){
            cout<<temp++<<" ";
        }
    return 0;
    }    
}
cout<<"No"<<endl;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务