
C/C++,数据结构
mpp_king
收藏夹会持续收藏一些自己觉得不错的文章,大家一起学习。
展开
-
利用栈反向打印单链表
# include # include # define SIZE 5 //初始定义链表的长度//定义节点typedef struct Node{int data;struct Node * pNext;}NODE, * PNODE;//定义栈typedef struct Stack{int * base; //栈空间基址原创 2017-08-21 14:25:56 · 587 阅读 · 0 评论 -
完数_1
#include #define NUM 10000/* 完数:它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 * 问题:求10000以内的所有完数 *///求完数void f(int x);int main(){ for (int i=1;i<NUM;i++) { f(i); } return 0;}void f(int x)原创 2018-01-31 18:45:10 · 277 阅读 · 0 评论 -
完数_2
说明:一个数如果有因数的话,那么因数是成对出现,其中一个小于该数的平方根,另一个大于该数的平方根。#include #define NUM 10000/* 完数:它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。 * 问题:求10000以内的所有完数 *///求完数void f(int x);int main(){ for (int i=2原创 2018-01-31 19:23:17 · 224 阅读 · 0 评论 -
求质数
#include /* 求质数 */#define NUM 100int f(int x);int main(){ int k = 0; for (int i=2;i<100;i++) { if (f(i) != 0) k++; } printf("%d内,共有%d个质数",NUM,k); return 0;}int f(int x){ for原创 2018-02-04 13:48:31 · 207 阅读 · 0 评论 -
筛选法求质数
#include #include /* 筛选法求质数 */void f(int x);int main(){ int x; puts("请输入一个数:"); scanf("%d",&x); f(x); return 0;}void f(int x){ int k = 0; int *p = (int*)malloc(sizeof(int) * x); f原创 2018-02-04 17:17:26 · 432 阅读 · 0 评论 -
递归
递归 = 递推 + 回归求 n! ,程序如下:#include int recursion(int);int main(){ int x,sum; puts("请输入一个整数:"); scanf_s("%d",&x); sum = recursion(x); printf("%d!= %d\n\n",x,sum); return 0;}int rec原创 2018-02-10 18:54:07 · 196 阅读 · 0 评论 -
尾递归
定义:如果一个函数中所有的递归形式的调用都出现函数的末尾,我们叫这个递归是尾递归。更准确的说:当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分,才是尾递归。特点:在回归过程中不用做任何操作。于是,在调用过程中就不是开辟新的栈,而是覆盖当前的栈,因此程序所需的栈就大大的缩小了一般来说,尾递归的函数需要增加一个变量,叫做递归深度,用来控制递归的次数,另一个变量用来存放运算的结果。...原创 2018-02-10 21:12:06 · 140 阅读 · 0 评论