等差求和-公式+大数long long(蓝桥)

问题描述

求1+2+3+...+n的值。

输入格式

输入包括一个整数n。

输出格式

输出一行,包括一个整数,表示1+2+3+...+n的值。

样例输入

4

样例输出

10

样例输入

100

说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。

一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。

样例输出

5050

数据规模与约定

1 <= n <= 1,000,000,000。

说明:请注意这里的数据规模。

本题直接的想法是直接使用一个循环来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。此时你需要想想其他方法。你可以试一试,如果使用1000000000作为你的程序的输入,你的程序是不是能在规定的上面规定的时限内运行出来。

本题另一个要值得注意的地方是答案的大小不在你的语言默认的整型(int)范围内,如果使用整型来保存结果,会导致结果错误。

如果你使用C++或C语言而且准备使用printf输出结果,则你的格式字符串应该写成%I64d以输出long long类型的整数。

#include <stdio.h>

int main()

{

int n;

long long tmp;

scanf("%d", &n);

tmp = n;

printf("%I64d", (1+tmp) * tmp / 2);

return 0;

}

时间: 2024-10-11 10:53:15

等差求和-公式+大数long long(蓝桥)的相关文章

HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)

题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description Sample Input 2 Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases. 题意是输入一个N,求N被分成1个数的结果+被分成2个数的结果+...+被分成N个数的结果,N很大 1.隔板原理 1~N有

等比数列求和公式

[等比数列求和公式] 首项a1,公比q a(n+1)=an*q=a1*q^(n Sn=a1+a2+..+an q*Sn=a2+a3+...+a(n+1) qSn-Sn=a(n+1)-a1 S=a1(q^n-1)/(q-1)

HDU 5047 Sawtooth(数学 公式 大数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5047 Problem Description Think about a plane: ● One straight line can divide a plane into two regions. ● Two lines can divide a plane into at most four regions. ● Three lines can divide a plane into at m

EXCEL 偶数、奇数行分开求和公式

例举 : A1行是 123 A2行是 321 A3行是 456 A4行是 789我是加的是A1+A3得出的和还有加的是A2+A4得出的和因为要A1+A3一直加到A601,我用很笨的方式像这样子一个个加过来,所以EXCEL说公式太复杂,加不出来,我只能在自己敲计算器加.请求大家看看有没有简单的公式可以让偶数.奇数分开求和. =sumproduct(mod(row(a1:a601),2)*a1:a601) =sumproduct((1-mod(row(a1:a601),2))*a1:a601) 奇数

hdu2058 The sum problem(枚举~~等差数列求和公式)

The sum problem Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17697    Accepted Submission(s): 5275 Problem Description Given a sequence 1,2,3,......N, your job is to calculate all the possibl

子数组求和之大数溢出

题目: 返回一个占内存较多的数组的最大子数组. 要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 思想: 老师要求主要是解决内存溢出问题,所以我写的只是一种测试,可能和题目不符,但思路应该一样,就是把大数字一分为二,就像计算机中的高八位低八位一样,我假设一个数字最大表示范围为0~100,如果想要表示9856,那么就用98后面的跟上56来表示,然后高位有正负,求最大子数组,将结果放大相应倍数 加上对应的低位数字 程序源代码: #include<io

区间K大数查找 Java 蓝桥杯ALGO-1

1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main { 5 public static void main(String[] args) { 6 Scanner aScanner = new Scanner(System.in); 7 int n= aScanner.nextInt(); //读第一个 8 long a[] = new long[n]; //存放数组 9 long b[] = n

nyoj 122-Triangular Sums (数学之读懂求和公式的迭代)

122-Triangular Sums 内存限制:64MB 时间限制:3000ms 特判: No 通过数:5 提交数:7 难度:2 题目描述: The nth Triangular number, T(n) = 1 + - + n, is the sum of the first n integers. It is the number of points in a triangular array with n points on side. For example T(4): X X X X

算法必备求和公式

原文地址:https://www.cnblogs.com/xiaoyh/p/10329345.html