跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 华为 OD 机试题:给定两个数 0<S, N<100000, S 为数列总和, N 为数列长度,求连续正整数列
未分類
14 12 月 2020

华为 OD 机试题:给定两个数 0<S, N<100000, S 为数列总和, N 为数列长度,求连续正整数列

华为 OD 机试题:给定两个数 0<S, N<100000, S 为数列总和, N 为数列长度,求连续正整数列

資深大佬 : 6167 4

有结果返回数列,无结果返回-1
输入 525 6
返回 85 86 87 88 89 90

输入 3 5
返回 -1

题目倒是不难
根据 (beg +end) *num/2 = sum
倒推 beg= (2*sum/num-num+1)/2
但是这种题怎么算才能满足 100%通过率?
最高才 45%

大佬有話說 (6)

  • 資深大佬 : LewisHorse

    判断无结果的条件是怎么写的?

  • 主 資深大佬 : 6167

    @LewisHorse
    if sum>0 & num<0 & sum == int(sum) & num == int(num):
    return ……
    else:
    return -1

  • 資深大佬 : xsonglive491

    你直接判断 beg 是否是正整数就行了,(2*sum/num-num+1)为大于 0 的偶数

  • 主 資深大佬 : 6167

    @xsonglive491 这个有,只考虑这一项才通过 35%

  • 資深大佬 : xsonglive491

    @6167 num <=0 or num*num > 2* sum or (2*sum/num-num+1) %2 !=0 :return -1

  • 資深大佬 : zhucegeqiu

    很简单啊,beg = s/n – (n-1)/2
    是大于等于 0 的整数就行

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具