來我們一塊兒握個手

最近羣裏有小夥伴去面試,而後在羣裏發求助信息java

題目以下:面試

參加會議的人兩兩彼此握手,有人統計一共握了45次手,那麼到會的人數是多少人?


解題思路:

從這張表格能夠得出來的規律是:算法

握手次數=1+2+3+4+...+(n-1)

至關於求進行求和操做了。bash


java代碼app

方法一:遍歷求和學習

/**
   * 遍歷求n
   *
   * @param n
   * @return
   */
  public static int iterableSum(int n) {
    int sum = 0;
    int count=0;
    for (int i = 0; i <n; i++) {
      sum = sum + i;
      if (sum == 45) {
        count=i+1;
        break;
      }
    }
    return count;
  }
複製代碼

方法二:遞歸求和ui

遞歸,是比較經常使用的算法之一;所謂遞歸,就是本身調用本身,可是遞歸不會無休止的執行,必需要有一個明確出口(遞歸出口),當知足遞歸結束條件時遞歸程序就會中止運行,否則就會出現死循環;spa

/**
   * 遞歸求和
   * @param n
   * @return
   */
  public static int recursion(int n) {
    int sum = 0;
    if (n == 1) {
      return 1;
    } else {
      return  n + recursion(n - 1);
    }
  }複製代碼

方法三:code

等差數列,套用公司求和 N*(N-1)/2 =45複製代碼

打完收工,你們以爲還有更高級的解法,也能夠留言告訴做者,你們相互學習借鑑一下。
orm

相關文章
相關標籤/搜索