日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10項的和

  • 使用python編程語言解題:
  • 使用typescript編程語言解題:
  • 使用Go語言進行解題:

由題可以得知,分子是前一個數字項的分母,分母是前兩個數字項的分母之和,由此可得代碼:

使用python編程語言解題:

""" 存在序列:1, 1/2, 2/3, 3/5, 8/13, ... 的序列,求這個數列的前10項之和 """ a = 1 # 分子 b = 1 # 分母 s = 0 # 數列和for i in range(10):s += a/ba, b = b, a+b print("結果是 {:.2f}".format(s)) # 結果保留小數點后兩位

此處應注意:a, b = b, a+b 和 a=b , b=a+b的區別
a, b = b, a+b是先運算賦值號=左邊的數值,再依次賦值給左邊的數值,即:

當 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

故這是此兩個賦值表達式的區別!
故其輸出結果為:


使用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}// 結果保留后兩位小數console.log(sequenceSum.toFixed(2)) } sequence()

輸出結果:保留兩位小數,故等于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}// 保留小數點后兩位value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", sum), 64)fmt.Println(value)}

輸出結果:保留兩位小數,故等于6.48

總結

以上是生活随笔為你收集整理的【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。