使用递归的方法计算1到100的叠加,即1+2+3+4.....+100
题目:使用递归的方法计算1到100的叠加,既1+2+3+4.....+100。
分析:初中高中学习等差数列的时候老师都出过这样的问题,很简单的公式就可以计算出来,但是用计算机的递归来计算就不是那个样子的,这几天一直在学习并且尽量的数量递归的原理和应用,尽量能找到一些递归的感觉,晚上看到这个题目的时候就自己试着写了一下,的确很简单,甚至有些不值一提,不过还是决定摘录上来,全当是一个积累。
跟fibonacci数列很像,但是却又比他简单很多,设置函数recursive(int n),输入一个整数,在该题中应该为100,在函数内部对n进行判断,如果n的值为1,则直接返回1,否则,返回的是n+f(n-1)。
完整代码如下:
1 #include <iostream>
2 using namespace std;
3 int recursive(int n)
4 {
5 if(n == 1)
6 return 1;
7 else
8 return n+recursive(n-1);
9 }
10 void main()
11 {
12 int input,finalResult;
13 scanf("%d", &input);
14 finalResult = recursive( input );
15 cout<<finalResult<<endl;
16 }