前言:
这篇文章是为零基础的小白入门写的
因为学计算机语言这么久
我发现自己在做题的过程中
如果刚开始接触某类型题目或者算法
如果一开始搞不明白
到后面要浪费很多很多很多时间和精力
作为过来人
写下这篇博客
或许能帮助你走一个小捷径,因为弯路我已经走过啦哈哈哈哈哈哈
话不多说
我们来看题:
题目:
解题思路:
这道题乍一看,肯定用for循环做,轻轻松松的嘛
但是我们这一次,尝试用递归的思路去实现
一,找到边界条件:
这道题的边界条件是 1 和 n
边界很重要的,如果刚开始比较糊涂,你可以试着找一找:
问题的数字范围
二,写if-else语句:
也就是分情况
我们要求sum,那么就要求分成两种情况:
1.当n=1
2.当n != 1
if(n == 1){
}else{
}
三,找到每种情况的return 结果
我们试想,当n=1时,我们直接输出sum + n的值就好了,因为n不能再减了
当n!=1时,我们需要让n减1,并且求出n-1对应的sum值
代码实现如下:
int make(int sum, int n){
if(n == 1){
return sum + n;
}else{
sum += n;
return make( sum ,n-1);
}
最核心的已经完成啦,接下来给出完整代码!
完整代码:
#include<stdio.h>
int make(int sum, int n){
if(n == 1){
return sum + n;
}else{
sum += n;
return make( sum ,n-1);
}
}
int main(){
int n;
scanf("%d", &n);
int sum = 0;
printf("%d", make(sum, n));
return 0;
}
怎么样,你学废了么?