首页 > 代码库 > 算法学习(二)
算法学习(二)
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
算法学习(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。