51nod 1138 连续整数的和(等差数列)

来源:互联网 发布:c语言界面的汉化 编辑:程序博客网 时间:2024/05/16 15:13

51nod 1138 连续整数的和(等差数列)

还记得等差数列的求和公式吗?
n*a1 + n*(n-1)/2 * d = N

#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <iostream>using namespace std;int main(){    int n;    scanf("%d",&n);    n = 2*n;    int f = 0;    for(int i = sqrt(n); i >= 2; i--)    {        if(n % i == 0)        {            if((n/i-i+1)%2 == 0)            {                f = 1;                printf("%d\n",(n/i-i+1)/2);            }        }    }    if(!f) printf("No Solution\n");    return 0;}
0 0
原创粉丝点击