求助

P2669 [NOIP2015 普及组] 金币

_Glassy_Sky_ @ 2023-09-05 19:39:24

#include<bits/stdc++.h>
using namespace std;
int main()
{
    //freopen(".in", "r", stdin);
    //freopen(".out", "w", stdout);
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    long long n, ans = 0, tot;
    cin >> n;
    for(int i = 1; ; i ++)
        if((1 + i) * i / 2 >= n)
        {
            tot = i;
            break;
        }
    for(int i = 1; i <= tot; i ++)
        ans += pow(i, i);
    cout << ans;
    return 0;
}

by WZWZWZWY @ 2023-09-05 19:48:50

@FZwangmuem

我猜你是想这么写?QAQ

#include<bits/stdc++.h>
using namespace std;
int main()
{
    //freopen(".in", "r", stdin);
    //freopen(".out", "w", stdout);
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    long long n, ans = 0, tot;
    cin >> n;
    for(int i = 1; ; i ++)
        if((1 + i) * i / 2 >= n)
        {
            tot = i-1;
            break;
        }
    ans += (n - (tot + 1) * tot / 2) * (tot+1);
    for(int i = 1; i <= tot; i ++)
        ans += i*i;

    cout << ans;
    return 0;
}

|