zoukankan      html  css  js  c++  java
  • EularProject 48: 利用数组求和

    Problem 48
    The series, 11+22+33+...+1010=10405071317.

    Find the last ten digits of the series, 11+22+33+...+10001000.

    Answer:
    9110846700
    Completed on Thu, 23 Jul 2015, 17:26

    初步思路。能够利用元对的方式计算每个数须要乘的数

    def func(a):
        for i in range(0,len(a)):
            a[i][1]*=a[i][0]
        return a
    
    a=[[i,i] for i in range(1000,0,-1)]
    result=0
    while len(a)>0:
        result+=a.pop()[1]
        a=func(a)
    
    print(result%(pow(10,10)))

    更进一步,能够利用数组下标得到须要乘的数

    def func(a):
        for i in range(0,len(a)):
            a[i]=a[i]*(1000-i)
        return a
    
    a=[i for i in range(1000,0,-1)]
    result=0
    while len(a)>0:
        result+=a.pop()
        a=func(a)
    
    print(result%(pow(10,10)))
  • 相关阅读:

    入门动态规划问题
    AC自动机
    KMP算法
    [OpenGL]用鼠标拖拽图形移动
    HDU-2222 Keywords Search
    Trie
    Manacher算法
    linux环境搭建
    Android Studio使用JNI和NDK进行开发
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7141291.html
Copyright © 2011-2022 走看看