C++编程《第09课 简单递归》教学课件.pptxVIP

  • 1
  • 0
  • 约1.76千字
  • 约 22页
  • 2026-03-10 发布于广西
  • 举报

C++编程《第09课 简单递归》教学课件.pptx

第09课;学习目标;知识讲授;递归;偶数的递归定义;证明10是偶数;#includebits/stdc++.h

usingnamespacestd;

boolf(intn)

{

if(n==0)//如果n==0,则n是偶数

returntrue;

returnf(n-2);//否则证明n-2是否为偶数

}

intmain()

{

intn;

cinn;

coutf(n);

return0;

};递归的三大要素;递归的三大要素;#includebits/stdc++.h

usingnamespacestd;

boolf(intn){

if(n==0)//如果n==0,则n是偶数

returntrue;

if(n==1)//如果n==1,则n是奇数

returnfalse;

returnf(n-2);//否则证明n-2是否为偶数

}

intmain(){

intn;

cinn;

coutf(n);

return0;

};课堂练习;【描述】请使用递归的方法,计算1+2+3+...+n的和

【输入】1行1个整数n;

【输出】输出1到n之间所有自然数的和;#includebits/stdc++.h

usingnamespacestd;

intsum(intn)

{

if(n==1)

return1;

returnsum(n-1)+n;

}

intmain()

{

intn;

cinn;

coutsum(n);

return0;

};【描述】请使用递归的方法,计算n!

【输入】1行1个整数n;

【输出】输出n的阶乘的值;#includebits/stdc++.h

usingnamespacestd;

longlongjc(intn)

{

if(n==0)

return1;

returnjc(n-1)*n;

}

intmain()

{

intn;

cinn;

coutjc(n);

return0;

};【描述】多项式的表达式如下,给出不同的x和n,试计算相应的多项式的结果,精确到小数点后2位。

f(x,n)=√(n+√(n-1+√(n-2+√(...+√(2+√(1+x))))))

【输入】n和x,x为double,n为int整数;

【输出】多项式的值;#includebits/stdc++.h

usingnamespacestd;

doublef(intn,doublex){

if(n==1)returnsqrt(1+x);

elsereturnsqrt(n+f(n-1,x));

}

intmain(){

intn;

doublex;

cinnx;

printf(%.2f,f(n,x));

return0;

};【描述】数根是将一数字重复做其数字之和,直到其值小于10为止,则所得的值为该数的数根。例如54817的数根为7,因为5+4+8+1+7=25,25大于10则再加一次,2+5=7,7小于10,则7为54817的数根。

【输入】一个整数n;

【输出】整数n的数根;#includebits/stdc++.h

usingnamespacestd;

intsum(intn){

ints=0;

while(n){

s+=n%10;

n/=10;

}

returns;

}

intnumroot(intn){

if(sum(n)10)returnsum(n);

returnnumroot(sum(n));

};小结;作业;同学们加油

文档评论(0)

1亿VIP精品文档

相关文档