经典面试题 之 递归调用 几个经典示例
2013-07-17 17:00
274 查看
1、 求算1-100
#include <iostream> int fun(int n, int &sum) { n && fun(n - 1, sum); return (sum += n); } int main() { int sum = 0; int n = 100; printf("1+2+3+...+n=%d\n", fun(n, sum)); return 0; system("pause"); }
2、 求算 数列 1,1,2,3,5,。。。。第二十个数的 值
#include<iostream> using namespace std; int fun(int n) { if(n == 1 || n == 2) return 1; return (fun(n-1) + fun(n-2)); } int main() { int num = 20; printf("num=%d\n", fun(num)); system("pause"); return 0; }
3、 求文件夹的大小
#include <stdio.h> #include <dirent.h> #include <sys/stat.h> #include <sys/types.h> #include <errno.h> #include <stdlib.h> #include <string.h> static int mc_get_stat(char *filename, struct stat *stbuf) { return stat(filename, stbuf); /* 跟随符号链接 */ } /* 遍历目录或者文件, 返回整个目录或者文件的大小 */ static blkcnt_t mc_do_du(char *filename, int *len) { DIR *dp; char name[256]; struct dirent *p; blkcnt_t n; struct stat stbuf; n = 0; if(mc_get_stat(filename, &stbuf) == -1){ fprintf(stderr, "%s cannot access \n", filename); return n; } if(S_ISDIR(stbuf.st_mode)){ dp = opendir(filename); while(p = readdir(dp)){ if(!strcmp(".", p->d_name) || !strcmp("..", p->d_name)) continue; else{ /* 文件名超过255个字符时行为未定义 */ strcpy(name, filename); strcat(name, "/"); strcat(name, p->d_name); n = mc_do_du(name, len); } } closedir(dp); } return *len += stbuf.st_size; } int main() { int len =0, len1=0; len1 = mc_do_du("/usr/local/bin/qq", &len); printf("len1 =%d, len=%d\n", len1, len); }
相关文章推荐
- 经典算法题:数字三角形寻找最大路径——动态规划和递归调用两种解法
- MDX查询几个经典示例
- 递归整理及几个经典题目
- [经典面试题][百度]数轴上从左到右有n各点a[0], a[1], ……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。
- 经典C语言100题-26-递归调用
- 前端,别闹 学习Javascript闭包(Closure)及几个经典面试题理解
- 经典面试题:二输入一颗二元查找树,得到树的镜像(递归和循环实现)
- 几个String对象的面试题,很经典
- 【经典面试题二】二叉树的递归与非递归遍历(前序、中序、后序)
- 2018年大数经典面试题以及回答技巧,你看过几个?
- 几个递归示例
- 递归调用的题目-腾讯面试题
- 递归调用理解【含有示例代码】
- [经典面试题][百度]数轴上从左到右有n各点a[0], a[1], ……,a[n -1],给定一根长度为L的绳子,求绳子最多能覆盖其中的几个点。
- 经典面试题:单链条反转的递归与非递归方法及分析[Java]
- 递归经典面试题_ 小例
- 递归调用示例
- 你会做几个?.NET经典面试题
- MDX查询几个经典示例
- 经典面试题--不调用库函数实现字符串的拷贝