算法學習(二)
阿新 • • 發佈:2017-08-06
要求 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 fori 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的值需要求模 1213 print(result)
輸出:8921379
算法學習(二)