解题思路:
参考
https://blog.csdn.net/zy98zy998/article/details/122293334
注意事项:
参考代码:
#include<iostream> using namespace std; typedef long long ll; ll n; ll C(ll q,ll x) { ll ans=1; for(int i=1,j=q-x+1;i<=x;i++,j++) { ans=ans*j/i; if(ans>n) return ans; } return ans; } ll check(ll x) //二分 { ll l=2*x,r=n,q; while(l<=r) { ll mid=l+(r-l)/2; q=C(mid,x); if(q>n) r=mid-1; else if(q<n) l=mid+1; else { cout<<(1+mid)*mid/2+x+1<<endl; return 1; } } return 0; } int main() { cin>>n; for(int i=14;~i;i--) { if(check(i)) break; } return 0; }
0.0分
8 人评分
数组输出 (C语言代码)--此题的题目描述有问题浏览:1817 |
简单的a+b (C语言代码)浏览:530 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:469 |
简单的a+b (C语言代码)浏览:528 |
【明明的随机数】 (C语言代码)浏览:787 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:577 |
交换Easy (C语言代码)浏览:763 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:649 |
第三届阿里中间件性能挑战赛-总决赛亚军比赛攻略浏览:1145 |