专栏文章

B2072 分苹果 题解

B2072题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqvjh61
此快照首次捕获于
2025/12/04 11:26
3 个月前
此快照最后确认于
2025/12/04 11:26
3 个月前
查看原文
这是本人第1次写题解(大佬勿喷,有错请指出,还求管理大大能用!)
根据题目我们知道了苹果数每次要不同,所以要求的总数就等于1到第n人数量的累加,这时就有了CODE1,如下
CPP
#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,如下
CPP
#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.

评论

0 条评论,欢迎与作者交流。

正在加载评论...