蓝桥杯杨辉三角

PREV-282 杨辉三角形【第十二届】【蓝桥杯省赛】【B组】

(二分查找 + 递推):

解析:

1.杨辉三角具有对称性:

2.杨辉三角具有一定规律

通过观察发现,第一次出现的地方一定在左部靠右的位置,所以从后往前进行查找

代码:

cpp 复制代码
#include <iostream>
#include <algorithm>

using namespace std;

typedef long long LL;
LL n;
LL C(int a, int b)
{
	LL res = 1;
	for (int i = 1, j = a; i <= b; i ++, j --)
	{
		 res = res * j / i;
		 if (res > n)
			return res;
	}
	return res;
}

//检查第k斜行
bool check(int k)
{
	LL l = 2 * k, r = max(n, l);
	while (l < r)
	{
		LL mid = (l + r) / 2;
	  	if (C(mid, k) >= n) r = mid;
	  	else l = mid + 1;
	} 
	if (C(l, k) != n) return false;
	else
	{
		//k是行数
		LL res = (l + 1) * l / 2 + k + 1;
		printf("%lld\n", res);
		return true;
	}
}
int main()
{
	cin >> n;
	for (int i = 16;; i --)
		if (check(i))
			break;
			
	return 0;
}

相关推荐
洛水水11 分钟前
【力扣100题】90.寻找重复数
算法·leetcode·职场和发展
天真小巫1 小时前
会话跟踪技术
职场和发展
想吃火锅100511 小时前
【leetcode】14.最长公共前缀js
算法·leetcode·职场和发展
我爱cope13 小时前
【Agent智能体26 | 多智能体-多智能体工作流】
人工智能·设计模式·语言模型·职场和发展
菜鸟‍14 小时前
LeetCode 1 27 和 704 || 两数之和 移除元素 二分查找
算法·leetcode·职场和发展
sjsjs1119 小时前
力扣3558. 给边赋权值的方案数 I
算法·leetcode·职场和发展
嵌入式ZYXC19 小时前
第8篇:《面试题:模拟地和数字地为什么要分开?怎么接?》
stm32·单片机·嵌入式硬件·面试·职场和发展
程序员晨曦1 天前
深入浅出JVM内存结构
jvm·面试·职场和发展
AC赳赳老秦1 天前
OpenClaw+AWS 深度应用:自动生成 CloudFormation 模板、批量管理 S3 存储桶
java·python·面试·职场和发展·php·deepseek·openclaw
Zik----1 天前
保研英语面试
面试·职场和发展