B2072 分苹果 题解
QQ13875250162 · · 题解
这是本人第1次写题解(大佬勿喷,有错请指出,还求管理大大能用!)
题目传送门
根据题目我们知道了苹果数每次要不同,所以要求的总数就等于1到第n人数量的累加,这时就有了CODE1,如下
#include<bits/stdc++.h> //万能头文件
using namespace std;
int main(){ //主函数
int n,sum=0; //创立一个n的整数变量 sum为累加器
cin>>n; //输入n
for(int i=1;i<=n;i++){ //for的循环 ,从i开始一直循环到n
sum+=i; //累加器
}
cout<<sum; //输出结果sum
return 0; //完美结束撒花!
}
但是这题还可以优化,利用等差求和公式
即:(首相+末相)*相数/2
运用道题中就为:(1+n)*n/2,去括号得:n+n²/2,这时就有了公式般CODE2,如下
#include<bits/stdc++.h> //万能头文件
using namespace std;
int main(){ //主函数
int n,sum=0; //创立一个n的整数变量 ,sum用来存数
cin>>n; //输入n
sum=(n+n*n)/2; //套公式,即等差数列求和公式
cout<<sum; //输出sum
return 0; //完美结束撒花!
}
最后希望管理员大大能过!!!
The end.