zl程序教程

您现在的位置是:首页 >  其它

当前栏目

习题 2.4(4) 求1+2+3+···+100。

100 习题 2.4
2023-09-14 09:06:57 时间

C程序设计 (第四版) 谭浩强 习题2.4(4) 个人设计

习题 2.4(4) 求1+2+3+···+100。

代码块

方法1:(利用依次相加法)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, t;
    for (i=1, t=0; i<=100; i++)
        t=t+i;
    printf("%d\n", t);
    system("pause");
    return 0;
}

方法2:(利用首尾相加法)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, j, t;
    for (i=1, j=99; i<j; i++, j--);
    t=i*(i+j)+50;
    printf("%d\n", t);
    system("pause");
    return 0;
}

方法3:(利用函数的模块化设计)

#include <stdio.h>
#include <stdlib.h>
int addsum(int n);
int main()
{
    printf("sum=%d\n", addsum(100));
    system("pause");
    return 0;
}
int addsum(int n)
{
    int i, s;
    for (i=1, s=0; i<=n; s+=i, i++);
    return s;
}

方法4:(利用函数递归)

#include <stdio.h>
#include <stdlib.h>
int addsum(int n);
int main()
{
    printf("sum=%d\n", addsum(100));
    system("pause");
    return 0;
}
int addsum(int n)
{
	int s;
	n==1 ? s=1 : s=n+addsum(n-1);
	return s;
}

方法5:(循环简写)

#include <stdio.h>
#include <stdlib.h>
int main()
{
	for (int i=1, sum=0; i<=100; sum+=i++);
	printf("%d\n", sum);
	system("pause");
	return 0;
}