高精度累加求和(终于成功了) | 您所在的位置:网站首页 › 一行求和怎么求 › 高精度累加求和(终于成功了) |
题目: 使用求和公式求1到N的累加和大家都会,但是如果把N值变大呢,比如100位的整数,那该怎么求? 输入格式:输入在一行中给出1个位数不超过100位的整数N。 输出格式:对每一组输入,在一行中输出1+2+3+……+N的值。 输入样例:在这里给出一组输入。例如: 10 输出样例:在这里给出相应的输出。例如: 55短小而精悍 关键在于高精度。 但是,在这刚到ACM的一周里面,我学到了一件事,那就是不能与题目硬碰硬,应该学会化解题目。 这里显然不能从一一直加到所给的高精度数 因为时间太长了。 所以说应该用其他的方法去求 。 编程的思路常常需要数学思想的介入,其实当我们用数学的眼光去看这个问题的时候,会发现这不就是等差数列前项和吗? 所以说,如所给的高精度数是a的话,那么答案就是 a*(a+1)/2 那么下面分别用函数来实现a+1、a*(a+1)、/2 (当然,高精度的思想还是要一直存在的) a+1: void jiayi() { for (int i = 0; i |
CopyRight 2018-2019 实验室设备网 版权所有 |