栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

c语言蓝桥杯历年省赛题目(蓝桥杯C题库及答案)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c语言蓝桥杯历年省赛题目(蓝桥杯C题库及答案)

PREV-284 杨辉三角形【第十二届】【省赛】【研究生组】

链接: 杨辉三角题详解Java.
这个博客讲的算清楚的,就是我对于Check还是一知半解。。。 注意要点

    long long 类型是AC的关键!!!
#include
#include
using namespace std;

long long N;
//计算组合数
long long C(int a, int b)
{
	long long sum = 1;
	for (int i = a, j = 1; j <= b; i--, j++)
	{
		sum = sum*i / j;

		if (sum>N)
		{
			return sum;
		}


	}
	return sum;
}


bool check(int k)
{
	long long  rRow = 2 * k;//斜着看的那一行 以第k行为基准 右斜上有 2k个行
	long long  lRow = max(rRow, N);//斜着看的那一行 左斜下是找N和rightRow 最大值
	while (rRow> 1;


		if (C(mid, k) >= N)
		{
			lRow = mid;
		}
		else
		{
			rRow = mid + 1;
		}
	}
	if (C(lRow, k) !=N )return false;
	else
	{
		cout << (long long)((1 + lRow)*lRow / 2 + (k + 1));
		return true;
	}
}



int main() {
	cin >> N;
	for (int i = 16; ;i--)
	{

		if (check(i))break;
	}
	return 0;

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号