HDOJ Problem 1001

输入32位的有符号整数,求和SUM(n)的值。

 1 #include <stdio.h>
 2
 3 int main(void)
 4 {
 5     int n,sum,i;
 6
 7     while(scanf("%d",&n) != EOF)
 8     {
 9         sum = 0;
10
11         for(i = 1;i <= n;i++)
12             sum += i;
13         printf("%d\n\n",sum);
14     }
15
16     return 0;
17 }
scanf("%d",&n) != EOF将一直判断输入然后求和输出,OJ的题目测试需要这样子。这道题目我在做的时候,遇到一个问题,我采用求和公式sum = n*(n+1)/2,来进行算法计算,结果总是显示Wrong Answer原因分析:如果输入的n是一个32位的数值,那么n*(n+1)将产生溢出,这是致命的错误。    在自己阅读数据结构的时候,有提到过算法的效率问题,指出采用公式的计算效率要比循环计算的效率高出很多,但是这是在不考虑溢出的情况下的讨论,所以写程序的时候需要考虑周全,内存的溢出问题一定要重视。
时间: 2024-11-08 04:57:37

HDOJ Problem 1001的相关文章

HDU 4910 HDOJ Problem about GCD BestCoder #3 第四题

首先 m = 1 时 ans = 0对于 m > 1 的 情况 由于 1 到 m-1 中所有和m互质的数字,在 对m的乘法取模 运算上形成了群 ai = ( 1<=a<m && gcd(a,m) == 1 ) 所以 对于 a 必然存在b = a^(-1) = inv(a) 使得 a * b = 1 (mod m) 这里存在两种情况 a != b 那么最后的连乘式中a b均出现一次,相乘得1 a == b 那么最后的连乘式中只出现一个a 实际上所有 a = inv(a) 的

HDOJ Problem - 1299

题意:等式 1 / x + 1 / y = 1 / n (x, y, n ∈ N+ (1) 且 x <= y) ,给出 n,求有多少满足该式子的解.(1 <= n <= 1e9) 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1299 分析:x,y肯定都满足 n<x<=y; 设 x = n + k; 带入上式得 :1/y = k/(n2+n*k); 即 k要整除 (n2+n*k); 又 k 一定整除 n*k; 即求 k 整除 n

百度之星资格赛 2016 Problem 1001

题意: 度熊手上有一本字典存储了大量的单词,有一次,他把所有单词组成了一个很长很长的字符串.现在麻烦来了,他忘记了原来的字符串都是什么,神奇的是他竟然记得原来那些字符串的哈希值.一个字符串的哈希值,由以下公式计算得到: 请帮助度熊计算大字符串中任意一段的哈希值是多少.多组测试数据,每组测试数据第一行是一个正整数N,代表询问的次数,第二行一个字符串,代表题目中的大字符串,接下来N行,每行包含两个正整数a和b,代表询问的起始位置以及终止位置. 思路: 首先利用一个前缀数组A[i]表示从第一个字符到第

[ACM]HDU Problem 1001 + Java

import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner input = new Scanner(System.in); while(input.hasNext()){ int n = input.nextInt(); int sum = 0; //暴力加合 for(int i=1; i<n+1; i++){ sum+=i; } System.out.println(

bzoj 1001: [BeiJing2006]狼抓兔子 平面图最小割

平面图跑最大流 可以转换为其对偶图跑最短路 一个环对应一个割  找到最小环(即最短路)极为所求,注意辅助边的建立 加入读入优化  不过时间还是一般  估计是dij写的不好   大神勿喷~~~ /************************************************************** Problem: 1001 User: 96655 Language: C++ Result: Accepted Time:1724 ms Memory:95120 kb ****

九度OJ 1001 A+B for Matrices

题目1001:A+B for Matrices 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:14669 解决:5996 题目描述: This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns. 输入: The input consists of several test cases, each st

Problem 1000 to 1002

Problem 1000 问题: 输入两个正整数A,B,输出两个正整数之和A+B using System; //Input integer number A,B,output A+B. class Program { static void Main(string[] args) { string[] s = Console.ReadLine().Split(); Console.WriteLine("{0}", Convert.ToInt16(s[0]) + Convert.ToI

BZOJ 1001 题解

1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 18876  Solved: 4649[Submit][Status][Discuss] Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=

codevs 1001 舒适的线路 kruskal/gcd

舒适的线路 Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://www.codevs.cn/problem/1001/ Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光. Z小镇附近共有N(1<N≤500)个景点(编号为 1,2,3,…,N),这些景点被M(0<M≤5000)条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路.也许是为了保护该地的旅 游资源,Z小镇有个奇怪的规定,就是对于一条给定的