kobellover


私信TA

用户名:kobellover

访问量:2963

签 名:

等  级
排  名 2932
经  验 2008
参赛次数 0
文章发表 27
年  龄 0
在职情况 学生
学  校 扬州大学
专  业

  自我简介:

TA的其他文章

1.杨辉三角可以用组合数表示

2.杨辉三角是对称的,可以只看前半部分

3.将三角形斜过来观察,从下往上搜索


#include <iostream>

#include <cstring>

#include <algorithm>

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; i --, j ++ ) {

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;

cout << r * (r + 1) / 2 + k + 1 << endl;

return true;

}


int main() {

cin >> n;

for (int k = 16; ; k -- )

if (check(k))

break;

return 0;

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区