bool型函数返回值问题

qq_41792350 2019-03-04 10:54:14
第一张图片是判断是否通过,第二张图片是题目

...全文
760 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdghchj 2019-03-04
  • 打赏
  • 举报
回复
另一种方法,x是一个1 + 2 + 3 + .... + n 等差数列各,所以 x = n(n+1)/2,即n(n+1)- 2x = 0. 根据一元二次方程求根公式韦达定理,要使n为正整数,需要 1 + 8x 必定是某个正整奇数m的平方.

    if(x < 1) return false;

    int s = 1 + 8 * x, n = 1;

    while(n * n < s) n += 2;

    return n * n == s;
sdghchj 2019-03-04
  • 打赏
  • 举报
回复

    //add your code here
   
    if(x < 1) return false;

    int n = 1;

    while(x > n) x -= n++;

    return x == n;

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧