9/12練習

b512: 高維度稀疏向量

題目:詳見此
思路:先處理輸入問題,把冒號轉成空白後split。先建立第一個向量的字典,檢查第二個向量,在某維度重疊時相乘,最後加總後輸出。
        

b537: 分數運算

題目:詳見此
思路:很有趣的數列,越接近1/2的分數越後面。
          引入Fraction計算分數(好用),再來依照規則反轉數列。最後輸出答案。
          數列反轉的規則:先觀察數列table,發現table[2**(n-1)]==n-1。
          而偶數項必大於1,奇數項則必小於1,而且每兩項互為倒數。
          所以要推回去就是如果小於一->倒數大於1->減1直到為整數或小於1。
          給定分數a/b,並假定他在數列位置=x。
          如果a/b小於1,則讓他變成倒數。
          如果a/b大於1,則-1。
          最後變成整數再*2/+1
        

b538: 分數運算2

題目:詳見此
思路:直接用fraction作弊,但要算也應該不難,就通分計算再處理約分就好。
        

arrow_circle_left home arrow_circle_right