蓝桥杯2021年第十二届国赛真题-123 满分写法
题目:
思路:
先转换成二维数组
1
1 2
1 2 3
1 2 3 4
…
假设有 n n n 行,那么数组长度 l e n len len 应该等于
l e n = n + n 2 2 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;
}
给定长度求和分为两块:
S n = S v + S y S_n = S_v+S_y Sn=Sv+Sy
其中 S v S_v