题目:
链接:https://www.nowcoder.com/acm/contest/156/B
来源:牛客网
题目描述
欧洲人托米非常喜欢数字,他经常在空闲时玩下面的游戏
对于一个数字 n, 托米会随性选中一个数 p, (1 < p <= n), 将 n 拆分成 ,v=n-u,并对 u,v 重复这个过程,直到他有了 n 个 1
1317 为了挑战托米,在每次托米进行划分时,会给托米奖励 u * v 的分数,托米希望你能帮他最大化他的得分。
输入描述:
第一行一个正整数 T下面 T 行每行一个正整数 n
输出描述:
对于每组数据,输出托米的最大得分
示例1
输入
复制
1 5
输出
复制
10
备注:
T≤ 104, n≤ 109
思路:
n每次减去一的差相加……
就从n-1加到1就行了。
代码:
#include<iostream>
using namespace std;
long long int chuli(long long int n)
{
long long int sum=0;
for(long long int i=1;i<n;i++){
sum=sum+i;
}
return sum;
}
int main()
{
int T;
cin>>T;
while(T--){
long long int n;
cin>>n;
cout<<chuli(n)<<endl;
}
return 0;
}