博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
等差数列问题——递归与函数自调用算法
阅读量:4981 次
发布时间:2019-06-12

本文共 827 字,大约阅读时间需要 2 分钟。

题目描述 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 
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 
2 int main()3 {4 int n;5 scanf("%d",&n);6 printf("%d\n",((1+n)*n)/2);7 return 0;8 }

 

转载于:https://www.cnblogs.com/geek-007/p/4470098.html

你可能感兴趣的文章
20135202闫佳歆--week2 操作系统是如何工作的--学习笔记
查看>>
HTML5 简介
查看>>
Charles接口工具使用介绍
查看>>
MVC VIEW 时间格式控制
查看>>
包装设计模式
查看>>
poj 1144 Network (割点)
查看>>
前端 HTML
查看>>
[LeetCode] 82 Remove Duplicates from Sorted List II
查看>>
2018.10.26 操作系统中的线程定义以及理解
查看>>
《洛克菲勒留给儿子的38封信》 第二封:运气靠策划
查看>>
笔记 js 基础笔记(Dom操作)
查看>>
struts配置请求后缀,将.action改为.do、.doaction_2015.01.04
查看>>
LOJ#565. 「LibreOJ Round #10」mathematican 的二进制 分治,FFT,概率期望
查看>>
C# 集合
查看>>
lucene学习笔记、资料
查看>>
js获取和设置DOM样式函数cssStyle(类似于jquery的$(elem).css())
查看>>
Agc011_F Train Service Planning
查看>>
三个问题
查看>>
一对一双向外键关联
查看>>
EL表达式概述
查看>>