蓝桥杯2021年第十二届国赛真题-123 满分写法
题目:
思路:
先转换成二维数组
1
1 2
1 2 3
1 2 3 4
…
假设有 nnn 行,那么数组长度lenlenlen 应该等于
len=n+n22 len = \cfrac{n+n^2}{2} len=2n+n2
题目给出我们数组长度,逆推公式最大值可找到行数
查找行数函数:
int max_len(int n){
int l=1,r=n;
while(l<=r){
int mid = (l+r)/2;
if((mid*mid+mid)/2<n){
l=mid+1;
}else{
r=mid-1;
}
}
return r+1;
}
给定长度求和分为两块:
Sn=Sv+Sy S_n = S_v+S_y Sn=Sv+Sy
其中SvS_vS