【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和
生活随笔
收集整理的這篇文章主要介紹了
【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10項的和
- 使用python編程語言解題:
- 使用typescript編程語言解題:
- 使用Go語言進行解題:
由題可以得知,分子是前一個數(shù)字項的分母,分母是前兩個數(shù)字項的分母之和,由此可得代碼:
使用python編程語言解題:
""" 存在序列:1, 1/2, 2/3, 3/5, 8/13, ... 的序列,求這個數(shù)列的前10項之和 """ a = 1 # 分子 b = 1 # 分母 s = 0 # 數(shù)列和for i in range(10):s += a/ba, b = b, a+b print("結(jié)果是 {:.2f}".format(s)) # 結(jié)果保留小數(shù)點后兩位此處應(yīng)注意:a, b = b, a+b 和 a=b , b=a+b的區(qū)別
a, b = b, a+b是先運算賦值號=左邊的數(shù)值,再依次賦值給左邊的數(shù)值,即:
當 a = 1,b = 2 時:
b = 2
a+b = 2+1
再分別賦值給 a 和 b,即a = 2,b = 3
而 a=b , b=a+b是依次運行賦值,即
當 a = 1,b = 2 時:
a = b = 2
b = a+b = 2+2
即a = 2,b = 4
故這是此兩個賦值表達式的區(qū)別!
故其輸出結(jié)果為:
使用typescript編程語言解題:
有python編程語言我們可以得知,此時x和y兩個變量會同時賦值,由于在ts中我不懂得如何使用類似python語言中a, b = b, a+b 這樣的賦值表達式,故采用了新的值z進行接收變化前的x,從而達到解題的目的。故其解題步驟如下:
function sequence() {let x = 1;let y = 1;let z = 0;let sequenceSum = 0;for (let number = 0; number < 10; number++) {sequenceSum += x / yz = yy = x + yx = z}// 結(jié)果保留后兩位小數(shù)console.log(sequenceSum.toFixed(2)) } sequence()輸出結(jié)果:保留兩位小數(shù),故等于6.48
使用Go語言進行解題:
package mainimport ("fmt""strconv" )func main() {arrList() }func arrList() {// 獲取初始值var x float64 = 1var y float64 = 1var z float64 = 0var sum float64for i := 0; i < 10; i++ {sum += (x / y)z = yy = x + yx = z}// 保留小數(shù)點后兩位value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", sum), 64)fmt.Println(value)}輸出結(jié)果:保留兩位小數(shù),故等于6.48
總結(jié)
以上是生活随笔為你收集整理的【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【面试练习题】使用“暴力”的方法将字符串
- 下一篇: 【html+css练习】小白使用html