算法求和sum问题

问题:SUM(n) = 1 + 2 + 3 + ... + n写个算法

回答:

#include<stdio.h>
int main()
{
    int n,sum;
    while(scanf("%d",&n)!=EOF)
    {
        if(n%2==0)                  //oushu
            sum=n/2*(n+1);
         else
            sum=(n+1)/2*n;       //jishu
        printf("%d\n\n",sum);
    }
    return 0;
}

时间: 2024-10-26 05:38:52

算法求和sum问题的相关文章

UVa 1210 (高效算法设计) Sum of Consecutive Prime Numbers

题意: 给出n,求把n写成若干个连续素数之和的方案数. 分析: 这道题非常类似大白书P48的例21,上面详细讲了如何从一个O(n3)的算法优化到O(n2)再到O(nlogn),最后到O(n)的神一般的优化. 首先筛出10000以内的素数,放到一个数组中,然后求出素数的前缀和B.这样第i个素数一直累加到第j个素数,就可表示为Bj - Bi-1 枚举连续子序列的右端点j,我们要找到Bj - Bi-1 = n,也就是找到Bi-1 = Bj - n. 因为Bj是递增的,所以Bi-1也是递增的,所以我们就

算法 - 求和为n的连续正整数序列(C++)

//**************************************************************************************************** // // 求和为n的连续正整数序列 - C++ - by Chimomo // // 题目: 输入一个正整数n,输出所有和为n的连续正整数序列.例如:输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5.4-6和7-8. // // Answer: Supp

mysql sum() 求和函数的用法

查询在record表中 name=? 的 money 加起来的值使用聚和函数 sum() 求和select sum(money) from record t where t.name = ?另外:count() 求记录数avg() 求平均值 mysql sum() 求和函数的用法 SUM函数的语法是: 代码如下 复制代码 SELECT SUM(expression )FROM tablesWHERE predicates; 表达式可以是一个数值字段或公式. 简单的例子 例如,你可能想知道合并全体

Python vs PHP 冒泡排序和累加求和计算性能测试

测试环境: 处理器i5-3230M,64位Ubuntu 14.04 Python 2.7.6, PHP 5.4.39, PHP 7.0.0-dev(2015/04/21) 测试内容: 冒泡排序:对10个升序的数进行排序,降序输出,循环1百万次. 累加求和:0+1+2+3+...+99999999 冒泡排序测试结果对比: 程序: Python   PHP5       PHP7 耗时: 16.910s  14.715s  8.011s 内存: 35.8m    9.0m       12.5m P

java各种的求和

1.求0到指定数各数之间的和 1.1.迭代求和 1 // 迭代求和 2 static int sum1(int num) { 3 int sum = 0; 4 for (int i = 0; i <= num; i++) { 5 sum += i; 6 } 7 return sum; 8 } 1.2.递归求和 1 // 递归求和 2 static int sum2(int num) { 3 if (num > 0) { 4 return num + sum2(num - 1); 5 } els

【Leetcode 167】Two Sum II - Input array is sorted

问题描述:给出一个升序排列好的整数数组,找出2个数,它们的和等于目标数.返回这两个数的下标(从1开始),其中第1个下标比第2个下标小. Input: numbers={2, 7, 11, 15}, target=9Output: index1=1, index2=2 分析:在排序好的数组中进行查找,很容易想到用二分查找的思想.这里相当于是二分查找两个数,可以把最小值和最大值作为起点求和(sum). 若sum<target,则需要把较小元素也就是low处元素变大,此时不能直接把mid赋值给low,

C语言之基本算法08—去掉最高分去掉最低分求平均值

// /* ================================================================== 题目:选拔赛中通常用这样的办法求选手分数,去掉一个最高分,去掉一个 最低分,求平均成绩!请编程实现这个计算方法. ================================================================== */ #include<stdio.h> main() { float a[10],max,min,su

基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法

简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD).绝对误差和算法(SAD).误差平方和算法(SSD).平均误差平方和算法(MSD).归一化积相关算法(NCC).序贯相似性算法(SSDA).下面依次对其进行讲解. MAD算法 介绍 平均绝对差算法(Mean Absolute Differences,简称MAD算法),它是Leese在1971年提出的一种匹配算法.是模式识别中常用方法,该算法的思想简单,具有较高的匹配精度和较少的计算量,广泛用于图像匹配. 设S(x,y)是大小

[算法]正整数分解为几个连续自然数之和

题目:输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列. 一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 有些数可以写成连续N(>1)个自然数之和,比如14=2+3+4+5:有些不能,比如8.那么如何判断一个数是否可以写成连续N个自然数之和呢? 一个数M若可以写成以a开头的连续n个自然数之和,则M=a+(a+1)+(a+2)+-+(a+n-1)=n*a+n*(n-1)/2,要求a!=0,否则