1. 程式人生 > >算法學習(二)

算法學習(二)

要求 print 位數 div 輸入數據 class bsp arrays 變量

1.Sum of digits

說明:1.第一行包含要處理的值的數量;
   2.然後N行將會描述這些數字的值應該是由3個整數A、B、C來計算的;
   3.對於每一種情況,你需要將A乘以B,然後加上C(即A * B+C),然後計算結果的位數。

1 input data:
2 3
3 11 9 1
4 14 90 232
5 111 15 111
6 
7 answer:
8 1 16 21

這裏,第一種情況需要計算11*9+1=100,它的數字之和是1+0+0=1

 1 A = [11, 14, 111]
 2 B = [9, 90, 15]
 3 C = [1, 232, 111]
 4 
 5 for
i in range(len(A)): 6 Num = A[i] * B[i] + C[i] 7 Sum = 0 8 while Num > 0: 9 if Num % 10 != 0: 10 Sum += Num % 10 11 Num = Num // 10 # 獲得每位數的值 12 else: 13 Num = Num // 10 14 print(Sum, end= )
輸出:1 16 21

2.Array Checksum

說明:1.您將得到一個用於計算校驗和的數組。執行如下的計算:對於數組的每個元素,將這個元素添加到結果變量中,並將這個和乘以113——這個由10000007求模所取的新值應該成為結果的下一個值,以此類推。
   2.輸入數據將在第一行中顯示數組的長度。
3.數組的值在第二行中,由空格分隔。

1 input data:
2 6
3 3 1 4 1 5 9
4 
5 answer:
6 8921379

算法如下:

 1 Arrays = [3, 1, 4, 1, 5, 9]
 2 
 3 seed = 113
 4 result = 0
 5 limit = 10000007
 6 for i in range(len(Arrays)):
 7     result = (result + Arrays[i]) * seed
 8     if 0 < result < 10000007:
 9         result = result
10     else:
11         result = result % 10000007 # 大於10000007的值需要求模
12
13 print(result)
輸出:8921379

算法學習(二)