1、基础算法思想

---恢复内容开始---

1、递推法

递推算法使用“步步为营”的方法,不断利用已有的信息推导出新的东西。

(1)顺推法

是指从已知条件出发,逐步推算出要解决问题的方法。例如:斐波拉契数列就可以通过顺推法不断递推算出新的数据。

兔子繁殖

(2)逆推法

是从已知的结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程。

银行还息

(3)枚举(穷举)算法

   枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:
(1)可预先确定候选答案的数量;
(2)候选答案的范围在求解之前必须有一个确定的集合。

算术乘法

 (4)递归算法

就是一种直接或者间接地调用自身的算法。递归算法的具体实现过程一般通过函数或子过程来完成,在函数或子过程的内部,编写代码直接或者间接地调用自己,即可完成递归操作。

整数的阶次

 

---恢复内容结束---

1、递推法

递推算法使用“步步为营”的方法,不断利用已有的信息推导出新的东西。

(1)顺推法

是指从已知条件出发,逐步推算出要解决问题的方法。例如:斐波拉契数列就可以通过顺推法不断递推算出新的数据。

兔子繁殖

(2)逆推法

是从已知的结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程。

银行还息

(3)枚举(穷举)算法

   枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:
(1)可预先确定候选答案的数量;
(2)候选答案的范围在求解之前必须有一个确定的集合。

算术乘法

 (4)递归算法

就是一种直接或者间接地调用自身的算法。递归算法的具体实现过程一般通过函数或子过程来完成,在函数或子过程的内部,编写代码直接或者间接地调用自己,即可完成递归操作

 1 /******************************************************************************************************
 2 *
 3 *  递归算法:
 4 *  求阶次
 5 *  
 6 *
 7 *******************************************************************************************************/
 8 
 9 #include"stdio.h"
10 
11 
12 long  fact(int n)
13 {
14     if(n<=1)
15         return 1;
16     else
17         return fact(n-1)*n;
18 }
19 
20 
21 void main()
22 {
23     int n;
24     puts("请输入整数:");
25     scanf("%d",&n);
26     printf("\n%d!=%d\n",n,fact(n));
27 
28     system("pause");
29 }
整数求阶次
 1 /******************************************************************************************************
 2 *
 3 *  递归算法:
 4 *  进制转换
 5 *  
 6 *
 7 *******************************************************************************************************/
 8 
 9 #include"stdio.h"
10 #include"string.h"
11 #include"conio.h"
12 
13 void NumChange(char *s, int num, int n)
14 {
15     char c[]={"0123456789abcdef"};
16     int len;
17     
18     if(num==0)
19     {
20         strcpy(s,"");
21         return;
22     }
23 
24     NumChange(s,num/n,n);
25     len=strlen(s);
26     s[len]=c[num%n];
27     s[len+1]='\0';
28 }
29 
30 
31 
32 void main()
33 {
34     int n,num;
35     char s[100];
36     puts("输入需要转换的十进制数:");
37     scanf("%d",&num);
38     puts("输入需要转换的进制:");
39     scanf("%d",&n);
40     NumChange(s, num, n);
41     printf("转换的数为:%s",s);
42 
43     getch();
44 }
进制转换

 

posted @ 2015-06-07 15:20  如风轻逸  阅读(233)  评论(0编辑  收藏  举报