首页 > 编程语言 >杨辉三角形(c++实现)

杨辉三角形(c++实现)

时间:2024-03-30 21:32:50浏览次数:22  
标签:return 实现 res LL 样例 mid c++ int 杨辉三角

题目


下面的图形是著名的杨辉三角形:

在这里插入图片描述

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列:

1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, …

给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?


输入


输入一个整数 N。


输出


输出一个整数代表答案。


样例

输入样例:
6
输出样例:
13

代码

#include<iostream>
using namespace std;
typedef long long LL;
int n;

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

bool check(int k){
    LL l = k*2,r = max((LL)n,l);
    while(l<r){
        LL mid = l+r>>1;
        if(C(mid,k)>=n) r=mid;
        else l = mid+1;
    }
    if(C(r,k)!=n) return false;
    LL ans = r*(r+1)/2 + k+1;
    printf("%lld",ans);
    return true;
}



int main(){
    scanf("%d",&n);
    for(int i = 16;;i--){
        if(check(i)) break;
    }
}

标签:return,实现,res,LL,样例,mid,c++,int,杨辉三角
From: https://blog.csdn.net/zyang654321/article/details/137183740

相关文章

  • 不读概念,用过程轻松理解并实现拓扑排序
    目录1.有向无环图2.AOV网:顶点活动图3.拓扑排序4.实现拓扑排序5.力扣OJ1.有向无环图顾名思义,边有向,图中没有回路。这里只需要知道各顶点的入度和出度怎么计算即可。2.AOV网:顶点活动图在有向无环图中,用顶点来表示一个活动,用边来表示活动的先后顺序的图结构。......
  • linux---简单模拟实现shell(内置命令的解析)
    准备工作的知识我们要模拟实现一个命令行解释器的话,需要运用进程替换的知识。我们用我,如花,王婆,实习生的例子来说:这里的“我”就是程序员,如花是操作系统,王婆是命令行解释器bash,实习生则是子进程,我们用户想要和操作系统交流的话,就需要通过bash,而命令行解释器(王婆)不会自己去执行......
  • CRC校验方法和FPGA实现
    参考:【科普向】谁都能看懂的CRC(循环冗余校验)原理_crc循环冗余校验原理-CSDN博客CRC校验原理和推导过程及Verilog实现(一文讲透)_crcverilog-CSDN博客介绍两个CRC源码生成工具,可生成Verilog和VHDL-niosII爱好者-博客园(cnblogs.com)GeneratorforCRCHDLcode(bues.ch)......
  • 使用C语言在VS 环境下基本实现贪吃蛇游戏
    使用C语言在VS环境下基本实现贪吃蛇游戏一丶实现前的准备工作1.设置vs运行环境为window控制台而非window终端1.正确的运行环境页面2.设置正确的运行环境2.了解句柄(下面代码能看明白会照葫芦画瓢用就行)3.利用system函数丶cmd命令设置window控制台窗口的尺寸4.了......
  • Java基础 TCP协议下,收发数据代码实现
     --------------------------------------------------------------------------------------------------------------------------------- 代码实现:1.发送数据:publicstaticvoidmain(String[]args)throwsException{//1.创建Socket对象。细节:在创建对象的同......
  • UE4 c++ 通过枚举寻找DataTable中的数据
    DataTable中的数据DataTable中每一行数据是一个结构体在C++代码中定义结构体,然后可以在蓝图中可以创建以此结构体为单元的DataTable枚举变量定义一个头文件来存储枚举变量,然后可以在要使用的文件中利用MyEnumPtr=FindObject<UEnum>(ANY_PACKAGE,TEXT("EGridShapEnum"),tr......
  • C#实现窗体弹出的三种方式(附完整源码)
    C#实现窗体弹出的三种方式以下是C#实现窗体弹出的三种方式的完整源码:使用Show方法弹出窗体:usingSystem;usingSystem.Windows.Forms;namespaceWindowsFormsApp1{publicpartialclassForm1:Form{publicForm1(){......
  • C++入门(一)
    目录命名空间:为什么要提出命名空间?命名空间的定义:命名空间的使用:加命名空间名称及作用域限定符:使用using将命名空间中某个成员引入:使用usingnamespace命名空间名称引用:C++输入&输出:库的导入:使用说明:输入和输出:输入流:输出流:缺省参数:缺省参数的概念:缺省参数的......
  • 基于Spring Boot的二手物品交易的设计与实现
    ......
  • 基于SpringBoot的“游戏分享网站”的设计与实现(源码+数据库+文档+PPT)
    基于SpringBoot的“游戏分享网站”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示系统总体结构图网站首页界面图用户注册界面图游戏文章界面图交流论坛界面图个人中心界面图后......