




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、类型标识符类型标识符 函数名(形式参数表)函数名(形式参数表) 变量定义部分变量定义部分 语句部分语句部分 return 返回值;返回值; 或或 return(返回值);(返回值);eg. int max(int a, int b) if (ab) return(a) else return(b); 函数体函数体 * * * * *void printstar() cout “ *n”; cout “ *n”; cout “ *n”; cout “ *n”; cout “*n”;void printstar(int numOfLine) int i , j; for (i = 1; i = n
2、umOfLine; +i) cout endl; for (j = 1; j = numOfLine - i; +j) cout ; for (j = 1; j = 2 * i - 1; +j) cout “*”; int p(int n) int s=1, i; if (n 0) return(0); for (i = 1; i = n; +i) s *= i; return(s); bool IsLeapYear(int year) bool leapyear; leapyear = (year %4 = 0) &(year % 100 != 0) | (year % 400 =
3、0); return (leapyear);#include int max(int a, int b); main() int x, y; cin x y; cout b) return(a); else return(b); 函数原型说明函数原型说明函数调用函数调用函数实现函数实现#include int max(int a, int b) if (a b) return(a); else return(b); main() int x, y; cin x y; cout x y; cout max(x, y);int p( int n ) int s =1, i; if (n 0) re
4、turn(0); for (i=1;in2? n1: n2); mainx(2)y(3)mainx(2)y(3)maxa(2)b(3)n1n2mainx(2)y(3)maxa(2)b(3)n1n2pn(2)simainx(2)y(3)maxa(2)b(3)n1(2)n2pn(3)simainx(2)y(3)maxa(2)b(3)n1(2)n2(6)mainx(2)y(3)注意:形式参数是注意:形式参数是数组,实际参数也数组,实际参数也是一个数组是一个数组Int main(void) int a = 2, b = 3; cout a b; int a = 4; cout a b; cout a
5、b;int p = 1, q = 5, r=3;int f1() int p = 3, r = 2; q=p+q+r; cout “f1: p,q,r=“ p q r; int f2() p=p+q+r; cout “f2: p,q,r=“ p q r“ p q r; int f3() int q; r = 2*r; q=r+p; cout “f3: p,q,r=“ p q r; main()f3(); cout “after f3: p,q,r=” p q r” p q r; f1(); cout “after f1: p,q,r=“ p q r; f2(); cout “after f2:
6、 p,q,r=” p q r” p q r; 结果:结果: f3: p,q,r=1 7 6 after f3: p,q,r=1 5 6 f1: p,q,r=3 10 2 after f1:p,q,r=1 10 6 f2: p,q,r=17 10 6 after f2: p,q,r=17 10 6 /file1.cpp#include using namespace std;void f();extern int x; /外部变量的声明外部变量的声明int main() f(); cout in main(): x= “ x endl; return 0;/file2.cpp#include u
7、sing namespace std;int x; /全局变量的定义全局变量的定义void f() cout in f(): x= “ x endl; eg. int f(int a) int b=0; static int c=3; b=b+1; c=c+1; return(a+b+c); void main() int a=2,i; for (i=0; i3; +i) cout f(a); 运行结果为:运行结果为:7 8 9 void a();void b();void c();void d();main() int x=6; cout “x in main is “ x endl; a(
8、); b(); c(); d(x); x+; a(); b(); c(); d(x); cout “x in main is ” x endl; void a()int x=25; cout “x in a is ” x endl; void b()static int x=50; cout “x in b is ” x+ endl; void c() extern int x; x*=10; cout “x in c is ” x endl; int x=2; void d(int x) cout “x in d is ” +x endl; 结果:结果: x in main is 6 x i
9、n a is 25 x in b is 50 x in c is 20 x in d is 7 x in a is 25 x in b is 51 x in c 200 x in d is 8 x in main is 7 基本情况基本情况n!=1*2*3*4*(n-1)*n(n-1)!递归形式:递归形式:其他)!1(*01!nnnn递归终止条件递归终止条件long p(int n) if (n = 0) return 1; else return n * p(n-1); 00112132435568其他)2() 1(1100)(nFnFnnnFint f(int n)if (n=0) ret
10、urn 0; elseif (n=1) return 1; else return (f(n-1)+f(n-2); ) 1()!1() 1 , 0(1!nnnnn求求p(4) 1)0(*1)1(*2)2(*3)3(*4)4(ppppp递归过程回溯消耗的时间:执消耗的时间:执行行n n次加法和次加法和3n3n次次赋值!赋值!120191817221323130322333629423343528524252627678910Void fill( int number, int begin, int size) int i, row = begin, col = begin; if (size =
11、 0) return; if (size = 1) pbeginbegin = number; return; prowcol = number; +number; for (i=0; isize-1; +i) +row; prowcol = number; +number; for (i=0; isize-1; +i) +col; prowcol = number; +number; for (i=0; isize-1; +i) -row; prowcol = number; +number; for (i=0; isize-2; +i) -col; prowcol = number; +n
12、umber; fill( number, begin+1, size-2 );目标:将A上的盘子全部移到B上规则:每次只能移动一个盘子不允许大盘子放在小盘子上 A B CVoid PermuteWithFixedPrefix (char str , int k) int i; if ( k = strlen(str) ) cout str endl; else for (i=k; istrlen(str); +i) swap(str, k, i); PermuteWithFixedPrefix (str, k+1); swap(str, k, i); void queen_a11(int k)
13、 /在在8x8棋盘的第棋盘的第k列上找合理的配置列上找合理的配置int i, j; char awn; for(i = 1; i 9; i+) / 依次在依次在l至至8行上配置行上配置k列的皇后列的皇后 if ( ai & bk+i-1 & c8+k-i) /可行位置可行位置 colk = i; ai = bk+i-1 = c8+k-i = false; /置对应位置有皇后置对应位置有皇后 if (k = 8) / 找到一个可行解找到一个可行解 for (j = 1; j = 8; j+) cout j “:”colj t ; cout awn; if (awn=Q | awn
14、=q) exit(0); else queen_a11(k+1);/递归至第递归至第k十十1列列 ai = bk+i-1 = c8+k-i = true; /恢复对应位置无皇后恢复对应位置无皇后 NAAA,.,2112,.,NA AA12,.,NA AAjikkAInt maxSum(int a , int left, int right ) int maxLeft, maxRight, center; int leftSum = 0, rightSum = 0; int maxLeftTmp = NEGMAX, maxRightTmp = NEGMAX; center = ( left +
15、right ) / 2; if ( left = right ) return aleft 0 ? aleft : 0; maxLeft = maxSum(a, left, center); maxRight = maxSum(a, center + 1, right); for (int i = center; i = left; -i) leftSum += ai; if (leftSum maxLeftTmp) maxLeftTmp = leftSum; for (int i = center + 1; i maxRightTmp) maxRightTmp = rightSum; ret
16、urn max3(maxLeft, maxRight, maxLeftTmp + maxRightTmp)owhigh123045768901324576801234576890123456785730421968lowhighK=5730421968lowhighK=5730421968lowhigh173042968lowhigh130427968lowhigh123047968lowhighint coin(int k) int i, tmp, int coinNum = k; if (能用一个硬币找零)(能用一个硬币找零) return 1; for (i=1; ik; +i) if (tmp = coin(i) + coin(k-i) coinNum) coinNum = tmp; return coinNum;void makechange( int coins , int differentCoins, int maxChange, int coinUsed ) coinUsed0 = 0; for (int cents = 1; cents =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 系统架构设计师考试人际关系对职业发展的影响试题及答案
- 系统架构设计中的全球视野考题试题及答案
- 育婴师教育评估的关键要素试题及答案
- 职业基本测试题及答案
- 纺织品设计师考试能力评估试题及答案
- 做账实操-保险经纪与代理服务全盘账务处理实例
- 药物临床试验实施技巧试题及答案
- 知识产权制度创新的思考试题及答案
- 脱颖而出网络规划设计师考试试题及答案
- 文化产业协同发展试题及答案深入
- 2024-2025学年人教版初中物理八年级下册期中检测卷(第七章-第九章)
- 维修人员管理奖惩制度3篇1
- 国家粮食和物资储备局招聘考试真题2024
- 产品推广活动策划方案详解
- 手卫生知识宣教培训
- 上门催收技巧培训
- 【初中地理】《日本》课件-2024-2025学年湘教版初中地理七年级下册
- 智能定时开关插座设计与制作
- 医院患者满意度调查工作制度
- 洛索洛芬钠口服溶液-药品临床应用解读
- 18《井冈翠竹》公开课一等奖创新教学设计
评论
0/150
提交评论