@okokme
2018-06-25T04:46:59.000000Z
字数 1110
阅读 404
c语言
递归函数的应用:可以用来使数字逆序。 如求一个数的二进制数(或者别的什么八进制,总之用到这种的),反复那么取余最后得到数需要逆序,就可以用递归进行计算直接输出。
举个例子吧
//把一个整数从二进制形式转化为可打印的字符形式。 (如果在printf函数中使用了%d格式码,它就会进行这类处理)
/*
**接受一个整形值(无符号),把它转化为字符并打印它,前导零被删除
*/
#include<stdio.h>
void binary_to_ascii(unsigned int vale)
{
unsigned int qotient;
qotient = vale/10;
if(qotient != 0)
binary_to_ascii(qotient);
putchar(vale%10+'0'); //将整形常量化成字符常量 可以采用 +‘0’的形式 0+‘0’=‘0’,1+‘0’=‘1’,2+‘0’=‘2’
}
递归函数调用每次都产生新的一批变量
注意:不是所有函数都用递归比较好,有时候用迭代法好于递归,因为不必要的递归浪费资源。比如菲波那棋数列,使用迭代法好于递归,递归的冗余计算过于多。
long Fibonacci(int n)
{
long result;
long previous_result;
long next_older_result;
result = prvious_result = 1;
while(n>2)
{
next_older_result = previous_result;
previous_result = result;
result = previous_result + next_older_result;
}
if(n<=2)
result 1;
return result;
}
tar: /etc/ufw/before.rules:无法 open: 权限不够
tar: /etc/ufw/after6.rules:无法 open: 权限不够
tar: /etc/ufw/user.rules:无法 open: 权限不够
tar: /etc/ufw/user6.rules:无法 open: 权限不够
/etc/ufw/applications.d/
/etc/ufw/applications.d/cups
/etc/ufw/sysctl.conf
tar: /etc/ufw/after.init:无法 open: 权限不够
tar: /etc/ufw/before.init:无法 open: 权限不够
tar: /etc/ufw/after.rules:无法 open: 权限不够
tar: /etc/ufw/before6.rules:无法 open: 权限不够
/etc/ufw/ufw.conf
/etc/tmpfiles