最基本的算法,也是从小到大都在玩的一个游戏,记得小时候有些小伙伴经常问1+2+3+4+........+100=?
而我经常回答一个早已心知肚明的答案5050,随着年龄的增长,越来越发现从1加到100是一件非常有意思的事情,越来越发现,越能理解从1加到100
小学奥数中,老师会教你:1+100=101 2+99=101 3+98=101 ............. 50+51=101 一共有50个算式的结果是101
所以 1+2+3+4+..........+100 = 50*101= 5050
到了高中后老师会教你用数列计算1+2+3+4+...........+100
因为:2-1=1 3-2=1 4-3=1
所以 1 2 3 4 5 ............100是一组首项为1 公差为1的等差数列
带入等差数列的通项公式得: An=n
根据等比数列的前n项和的计算公式得: Sn=(1/2)*n*n+(1/2)*n
所以1+2+3+4+5+.............100 = S100 = (1/2)*100*100+(1/2)*100 = 5050
用编程的方法计算1加到100
方法一:for循环
#include <stdio.h>
int main()
{
int sum = 0;
for(int i=1;i<=100;i++)
{
sum = sum + i;
}
printf("%d\n",sum);
return 0;
}
运行结果:
方法二:while循环:
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
while(i<=100)
{
sum = sum + i;
i++;
}
printf("%d\n",sum);
return 0;
}
运行结果:
方法三:do----while循环:
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
do
{
sum = sum + i;
i++;
}while(i<=100);
printf("%d\n",sum);
return 0;
}
运行结果:
方法四: goto语句:
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
loop:
sum = sum + i;
if(i == 100)
{
printf("%d\n",sum);
return 0;
}
i++;
goto loop;
}
运行结果:
方法五:递归
#include <stdio.h>
int f(int n)
{
if(1 == n)
{
return 1;
}
else
{
return f(n-1)+n;
}
}
int main()
{
int sum = f(100);
printf("%d\n",sum);
return 0;
}
运行结果: