码迷,mamicode.com
首页 > 其他好文 > 详细

等差数列问题

时间:2015-05-01 00:25:27      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

题目描述 Description

给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n 

输入输出格式 Input/output
输入格式:
一行,一个数n
输出格式:
一行,结果
输入输出样例 Sample input/output
样例测试点#1
输入样例:
3
输出样例:
6
思路:
运行程序,当T=5时,输出结果:S=15,其递归调用执行过程是:(设T=3) 
技术分享
递归调用过程,实质上是不断调用过程或函数的过程,由于递归调用一次,所有子程序的变量(局部变量、变参等)、地址在计算机内部都有用特殊的管理方法——栈(先进后出)来管理,一旦递归调用结束,计算机便开始根据栈中存储的地址返回各子程序变量的值,并进行相应操作。 
 
代码①如下(符合题意,用的是递归):
 1 #include <stdio.h>
 2 int fac(int n)
 3 {
 4     if(n==0) return 0;
 5     else 
 6     {
 7         return(fac(n-1)+n);//递归 
 8     }
 9 }
10 int main()
11 {
12     int n;
13     scanf("%d",&n);
14     printf("%d\n",fac(n));//调用函数 
15     return 0;
16 }

代码②如下(自己写的,没用递归):

1 #include <stdio.h>
2 int main()
3 {
4     int n;
5     scanf("%d",&n);
6     printf("%d\n",((1+n)*n)/2);
7     return 0;
8 }

 

等差数列问题

标签:

原文地址:http://www.cnblogs.com/geek-007/p/4470098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!