杭电1001 Sum Problem

来源:互联网 发布:python 定义函数def 编辑:程序博客网 时间:2024/05/29 16:51

法一:

可利用for循环将数从1加到所要输入的数:

#include <stdio.h>int main(){    int num;    while(scanf("%d",&num) != EOF)    {        int sum = 0,i;        for(i = 1; i <= num;i++)        {            sum = sum + i;        }        printf("%d\n\n",sum);    }    return 0;}

法二:
利用等差数列公式计算,sum = (1+num)*num/2;但是要注意除2的位置,如果先乘再除,会造成数据溢出的问题,所以要先除再乘。
#include <stdio.h>int main(){    double num;    while(scanf("%lf",&num) != EOF)    {         double sum = 0;         sum=(1+num)/2*num;//注意数据溢出的问题        printf("%.0lf\n\n",sum);    }    return 0;}
错例:
#include <stdio.h>int main(){    int num;    while(scanf("%d",&num) != EOF)    {        int sum = 0;        sum=(1+num)*num/2;//数据溢出了        printf("%d\n\n",sum);    }    return 0;}