zoukankan      html  css  js  c++  java
  • 算法学习(二)

    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 Sum += Num % 10 10 Num = Num // 10 # 获得每位数的值 11 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
  • 相关阅读:
    day01【MySQL数据库软件、SQL】
    【Junit单元测试、反射、注解】
    day13【Stream流、方法引用】
    day12【函数式接口】
    day11【网络编程】
    day10【缓冲流、转换流、序列化流】
    day09【字节流、字符流】
    day08【File类、递归】
    day07【线程池、Lambda表达式】
    day06 【线程、同步】
  • 原文地址:https://www.cnblogs.com/zt19994/p/7295870.html
Copyright © 2011-2022 走看看