計算1 2 n 的值

2022-06-08 17:27:08 字數 955 閱讀 1290

參考:

1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(a?b:c)。

示例 1:

輸入: n = 3

輸出: 6

示例 2:

輸入: n = 9

輸出: 45

限制:

解題思路1:使用邏輯運算表示式模擬判斷條件,然後進行遞迴運算

class solution 

}

解題思路2:計算 1+2+...+n 的求和公式為n * ( n + 1) / 2,因此可以使用下列的俄羅斯乘法模擬兩數相乘,的到的最終值進行右移運算即可。

/**

* 俄羅斯乘法:計算35 * 72

* 35 72

* 17 144 35 >> 1 72 << 1

* 8 288 17 >> 1 144 << 1

* 4 576 8 >> 1 288 << 1

* 2 1152 ...

* 1 2304

* * 從上到下,對每一行,若左邊的數字若為奇數,則將右邊的數字取出,累加。

* 72+144+2304=2520

* 累加的結果2520即為乘積。

*/public static int quickmulti(int a, int b)

a <<= 1;

}return ans;

}class solution

}

面試題64 求1 2 n的值

求1 2 3 n,要求不能使用乘除法 for while if else switch case等關鍵字及條件判斷語句 a?b c 考察點 類的基礎知識和概念 發散思維。方法1 利用虛函式求解。定義兩個函式,乙個充當遞迴函式,乙個充當終止遞迴的情況。二選一的話用布林變數。true 1 呼叫第乙個,f...

求1 2 n 很多限制條件

題目 求1 2 n,要求不能使用乘除法 for while if else switch case等關鍵字以及條件判斷語句 a?b c 分析 這道題沒有多少實際意義,因為在軟體開發中不會有這麼 的限制。但這道題卻能有效地考查發散思維能力,而發散思維能力能反映出對程式設計相關技術理解的深刻程度。通常求...

微軟100題 求1 2 n

題目 求1 2 n,要求不能使用乘除法 for while if else switch case等關鍵字以及條件判斷語句 a?b c package test 題目 求1 2 n,要求不能使用乘除法,for,while,if,else,switch,case,條件判斷語句 a?b c author...