C语言中的循环与递归
2016-08-02 17:23
274 查看
今天学习了递归的算法,首先来一个十进制转二进制的递归算法代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<Windows.h>
void test(int n)
{
if (n)
{
test(n / 2); //因为此处是调用本身,所以越到深层越先打印出来
printf("%d", n % 2);
}
}
void main()
{
int n;
scanf("%d", &n);
test(n);
system("pause");
}
接着来一个100内求偶数和的代码,分别是循环求和和递归求和
void xunhuan()
{
int sum = 0;
for (int i = 2; i <= 100; i+=2)
{
sum += i;
}
printf("%d\n", sum);
}
int digui(int num)
{
if (num < 2)
{
return 0;
}
else
{
return num + oushu(num - 2);
}
}
分析代码:由上面的例子不难看出循环与递归的区别;循环是利用一个变量多次执行某一个步骤,最终完成目的,在函数体内由上至下依次执行,而递归则是调用函数自身,设定一个边界,当达到边界值的时候在结束自身,从而达到目的。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<Windows.h>
void test(int n)
{
if (n)
{
test(n / 2); //因为此处是调用本身,所以越到深层越先打印出来
printf("%d", n % 2);
}
}
void main()
{
int n;
scanf("%d", &n);
test(n);
system("pause");
}
接着来一个100内求偶数和的代码,分别是循环求和和递归求和
void xunhuan()
{
int sum = 0;
for (int i = 2; i <= 100; i+=2)
{
sum += i;
}
printf("%d\n", sum);
}
int digui(int num)
{
if (num < 2)
{
return 0;
}
else
{
return num + oushu(num - 2);
}
}
分析代码:由上面的例子不难看出循环与递归的区别;循环是利用一个变量多次执行某一个步骤,最终完成目的,在函数体内由上至下依次执行,而递归则是调用函数自身,设定一个边界,当达到边界值的时候在结束自身,从而达到目的。
相关文章推荐
- 微软c语言循环递归笔试题分析
- 八皇后问题 C语言,递归,非递归,循环!
- 【C语言】用递归和循环两种方法实现单链表倒置
- C语言循环和递归两种方法求n的阶乘
- C语言用分别用递归和循环求数字的阶乘的方法
- 二分查找法的C语言实现:递归与循环
- C语言递归算法系列_打印杨辉三角 循环与递归同时使用(4)
- (C语言)循环与递归求斐波那契数
- 【C语言】求取第n个斐波那契数的时间复杂度、空间复杂度分析,用三种方式实现(普通递归,循环,优化递归)
- C语言循环与递归
- 微软c语言循环递归笔试题分析
- C语言:字符串逆置(循环法,递归写法)
- C语言使用普通循环方法和递归求斐波那契序列示例代码
- 蓝桥杯-递归与循环
- C语言第三周作业---单层循环
- C语言错误之死循环
- 递归与循环
- 通过斐波那契数列分析实现函数时采用递归和循环的利弊
- C语言自学笔记4(循环)
- 二分查找模板总结(递归与循环遍历两个版本)