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)))

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 02:21:07

EularProject 48: 利用数组求和的相关文章

数组求和方法汇总

var arr = [1, 2, 3, 4, 5, 6];测试时我不想过度使用全局变量影响命名空间,所以没使用未声明变量.而是直接通过私有作用域设置静态私有变量,也可以用其他设计模式来限定变量作用域.因为数组对象的迭代方法也是一种遍历,所以也可以借助用来实现求和.一.利用数组对象的各迭代方法:1.array.every()查询是否有所有项都匹配的方法: 1 (function() { 2 var sum = 0; 3 4 function getSum(item, index, array) {

随机数组求和

题目要求: 随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中. 设计思路:     创建一个长度为10的double型数组,调用Java.util.Random包定义Random对象,利用方法nextInt(100);在通过for循环.Random类进行随机数赋值得到1-100间的随机数.在将数组里的数相加.最后在用JOptionPane.showMesssageDialog进行消息框输出. 程序流程图: 源程序代码: package qaq

二维数组求和

输入一个二维的整形数组,数组里有正数也有负数,数组中连续的一个或多个整数组成一个二维子数组,每个子数组都有一个和.求所有子数组的和的最大值. 解题思路:由于原来做的这个时间有一点久远,我记得当时的思路就是将二维数组转化为一维数组,然后利用原来的一维数组求和的方式进行计算. 源代码 package shengcheng; import java.util.Scanner; import org.junit.Test; public class Erwei { @Test public void f

numpy基础--利用数组进行数据处理

1 利用数组进行数据处理 numpy数组可以将许多种数据处理任务表述为简洁的数组表达式,用数组表达式替换循环的做法,通常被称为矢量化. 例如:我们想要处理一组值(网格型)上计算函数sqrt(x^2 + y^2).np.meshgrid函数接受两个一维数组,并产生两个二维矩阵(对应于两个数组中所有的(x, y)对). 1 >>> a = np.array([1, 2, 3]) 2 >>> b = np.array([4, 5, 6]) 3 >>> ax,

reduce实现数组求和

对于实现数组求和,我们常用的思路是通过for.while,对数组进行迭代,依次将他们的值加起来,下面列举常用的两种方法 第一种: var arr = [1,2,3,4,5,6]; Array.prototype.sum = function (){ var sumResult = 0; for (var i = 0; i < this.length; i++) { sumResult += parseInt(this[i]); } return sumResult; } arr.sum(); 第

CUDA学习:第一CUDA代码:数组求和

今天有些收获了,成功运行了数组求和代码:就是将N个数相加求和 //环境:CUDA5.0,vs2010 #include "cuda_runtime.h"#include "device_launch_parameters.h" #include <stdio.h> cudaError_t addWithCuda(int *c, int *a); #define TOTALN 72120#define BLOCKS_PerGrid 32#define TH

【POJ 3321】 Apple Tree (dfs重标号设区间+树状数组求和)

[POJ 3321] Apple Tree (dfs重标号设区间+树状数组求和) Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 21966   Accepted: 6654 Description There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the tree. K

利用数组求前n个质数

我的算法思想和实现方式都在代码和注释当中呢,这样的方式确实使算法复杂度降低一个等级,很好啊. #include <stdio.h> #include <time.h> /** * 利用数组求前n个质数 * 确定一个数m是否为质数,可以用已求出的质数对m * 的整除性来确定 */ //如果不知道质数的特性和想不到优化思路的方法 void getNPrimes_normal(); //优化之后的方法 void getNPrimes_optimize(); int main(void)

【示例】C语言中利用数组存放函数指针

C语言中利用数组存放函数指针,增加函数使用的灵活性.使用时只需提供数组索引,即可调用不同函数. 预备知识: 1.指向函数的指针 一个函数在编译时被分配一个入口地址,这个地址就被称为函数的指针. 例如: int max(int,int); // 声明函数,比较两数大小 int (*p)(); //声明指向函数的指针变量 p=max; //将函数max的入口地址赋给指针变量p int c=(*p)(a,b); //调用函数 2.函数指针作为函数参数 该例子中每次给process函数不同实参(函数名)