题目:[NOIP2015 普及组] 金币
题目原文请移步下面的链接
OI
、模拟
、数学
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
int main() {
long long k;
cin >> k;
long long ans = 0;
long long d = k;
for (long long i = 1; d > 0; ++i) {
ans += i * min(i, d);
d -= min(i, d);
}
cout << ans;
}
看题解时,学长真的很能压缩,5行搞定
#include<iostream>
using namespace std;
int main(){
int a,b=0,c=1,i;cin>>a;for(i=1;i<=a;i++)a-=i,b+=c*c,c++;cout<<b+a*c;//挤在了一行上
}