hdu - 4342 - History repeat itself - 纯数学水题

来源:互联网 发布:淘宝店铺杜邦分析图 编辑:程序博客网 时间:2024/05/22 11:46

http://acm.hdu.edu.cn/showproblem.php?pid=4342

#include <cstdio>#include <cmath>typedef __int64 LL;LL n, sum, num;int T;LL getnum(){    num = ((2 * n + 1) + sqrt(4 * n + 1)) / 2;    for(LL i = num; i >= 1; i --){        if(i - (LL)sqrt(i) == n && (double)(sqrt(i)) - (LL)(sqrt(i)) != 0) {            num = i; return num;        }    }}LL getans(){    LL ans = 0;    LL tmp = (LL)sqrt(num) - 1;    ans = (tmp * (2 * tmp + 1) * (tmp + 1) / 3) + tmp * (tmp + 1) / 2 + (num - ( tmp + 1 ) * ( tmp + 1 ) + 1) * (tmp + 1);    return ans;}int main(){    scanf("%d", &T);    while(T --){        scanf("%I64d", &n);getnum();        printf("%I64d %I64d\n", num, getans());    }    return 0;}


原创粉丝点击