当前位置: 首页 > news >正文

怎么做网站支付百度大数据平台

怎么做网站支付,百度大数据平台,网站布局方法,郑州排名前十的科技公司目录 1.分析下面选择题 2.实现求第n个斐波那契数 3.编写一个函数实现n的k次方,使用递归实现。 4.写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和 5.递归方式实现打印一个整数的每一位 6.实现求n的阶乘 1.分析下面选择…

目录

1.分析下面选择题

2.实现求第n个斐波那契数

3.编写一个函数实现n的k次方,使用递归实现。

4.写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

5.递归方式实现打印一个整数的每一位

6.实现求n的阶乘


1.分析下面选择题

根据下面递归函数:调用函数Fun(2),返回值是多少 (16)

int Fun(int n)      
{ if(n==5)   return 2;     else     return 2*Fun(n+1);      
}

解析:当n==5的时候退出递归 先递推,再回归 n=2的时候 一直递推 到2*fun(5) 的时候结束递推(一共三次递推),然后回归(也三次) ==> 4个2相乘 =16

2.实现求第n个斐波那契数

我们要先理解什么叫斐波那契数,简单解释一下吧

1 , 1 , 2 , 3 , 5.... 那就是前两个数相加等于第三个数,例如1+1=2 1+2=3 ....

  • 递归实现

假如用递归实现,要确定限制条件,那就是第一个数和第二数的时候都是返回1

Fib(1)=1,Fib(2)=1 因此我们设定条件n=1和n=2时返回1(限制条件)

而当n>=2是返回Fib (n-1)+Fib(n-2)实现递归(趋近于限制条件)

  • 递归函数的缺点: 其实递归程序会不断的展开,在展开的过程中,我们很容易就能发现,在递归的过程中会有重复计算,而且递归层次越深,冗余计算就会越多。计算就会很慢

int Fib(int n) {if (n<=2) {return 1;}else{return Fib(n - 1) + Fib(n - 2);}
}
​
int main() {int n = 0;scanf("%d", &n);int ret = Fib(n);printf("%d", ret);
}
  • 迭代方式实现

  1. 在函数体内部,定义了三个整型变量 abc,分别用于保存斐波那契数列中的相邻三个数。

  2. 在循环体内,c = a + b; 表示将变量 c 赋值为 ab 的和,即斐波那契数列中的下一个数。

  3. 接着更新 ab 的值,将 a 更新为原来的 b,将 b 更新为原来的 c,以便下一次迭代计算。

int Fib(int n) {int a = 1;int b = 1;int c = 1;while (n>2){c = a + b; //a = b;b = c;n--;//减到<=2的时候退出循环}return c;
}
​
int main() {int n = 0;scanf("%d", &n);int r = Fib(n);printf("%d\n", r);return 0;
}

3.编写一个函数实现n的k次方,使用递归实现。

  • 思考一下,什么是限制条件?

  • 当指数k一直减减减到为0的时候,那么结果返回1,结束递归

  • power(n, k - 1): 这部分是递归调用,它会计算 nk - 1 次方。这就是递归的关键,它通过反复调用自身来逐步减小问题的规模。

  • n * power(n, k - 1): 这里将 nnk - 1 次方相乘,从而得到 nk 次方。因为 nk 次方可以表示为 n 乘以 nk - 1 次方。

#include <stdio.h>
​
// 递归函数计算n的k次方
double power(double n, int k) {// 递归基if (k == 0)return 1;// 若k为负数,则返回1除以n的-k次方if (k < 0)return 1 / power(n, -k);// 递归计算n的k次方return n * power(n, k - 1);
}
​
int main() {double n;int k;printf("请输入底数n和指数k:");scanf("%lf%d", &n, &k);double result = power(n, k);printf("%.2lf的%d次方为%.2lf\n", n, k, result);return 0;
}

4.写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19

输入:1729,输出:19

int DigitSum(int n)
{if (n < 10)return n;else{int sum = n % 10 + DigitSum(n / 10);return sum;}
}
int main()
{int n = 0;scanf("%d", &n);printf("%d", DigitSum(n));return 0;
}
​

5.递归方式实现打印一个整数的每一位

  • 分析:用递归的方法 我们将 1234 按顺序输出 1 2 3 4

    我们可以定义一个Print()函数

    先递推:(一直递推到最高位,然后再从最高位开始打印,就会按顺序输出)

    (1234) 除以十去掉最后一位 (123) 4

    (123) 4 ---> (12) 3 4 ----> (1)2 3 4 ---> 1 2 3 4

    每次都调用自己,直到不能再分(限制条件)

    后回归:

  • 最后当n=1的时候不满足n>9的条件,达到限制条件然后进行回归,

    1%10 = 1

    12%10=2

    123%10 =3

    然后再顺序输出1 2 3

int Print(int n) {if (n > 9)//当n是两位数以上{Print(n / 10);}printf("%d ", n % 10);
}
int main() {int n = 0;scanf("%d", &n);Print(n);
}
 

6.实现求n的阶乘

递归和非递归分别实现(不考虑溢出的问题)

  • 递归的方法

  • 当n=0的时候 阶层为1 ==>限制条件

  • 不等于0的时候就算阶层

//递归方式
int Fact(int n) {if (0 == n) {return 1;}else{return n * Fact(n - 1);}
}
int main() {int n = 0;scanf("%d", &n);int ret = Fact(n);printf("%d", ret);return 0;
}
  • 非递归方法

int Fact(int n) {int sum = 1;int i = 0;for (i = 1; i <= n; i++) {sum *= i;}return sum;}
int main() {int n = 0;scanf("%d", &n);int ret = Fact(n);printf("%d", ret);return 0;
}

http://www.15wanjia.com/news/9163.html

相关文章:

  • 购买源码的网站系统优化软件十大排名
  • 四川网站建设费用百度指数是免费的吗
  • 备案的博客网站可以做别的吗百度资源平台链接提交
  • 网站建设及营销方案网络营销品牌推广
  • 工程承包平台关键词排名优化易下拉软件
  • 自学网站开发哪个网站好企业网站seo案例
  • 做网站能自己找服务器吗游戏推广一个月能拿多少钱
  • 深圳网站建设服seo是什么意思蜘蛛屯
  • 网站页面建设规划文案淘宝推广费用多少钱一天
  • 去除wordpress评论电子邮件优化大师最新版本
  • c2c网站方案郑州网络推广服务
  • 创建免费网站需要什么条件百度快照客服电话
  • pc网站做移动端适配东莞seo网站排名优化
  • 做熊猫tv网站的目的搜索优化推广公司
  • 网站建设的频道是什么长尾关键词挖掘词工具
  • 集团网站建设哪家好交换友情链接的好处
  • 电子商务网站建设的背景福州排名seo公司
  • 中国做外贸网站有哪些百度知道网址
  • 装修网站怎么做的好购物网站页面设计
  • 网站建设和维护怎么学互联网营销师考试题及答案
  • 网站绑定ftp网络营销平台有哪些
  • 张家口建设网站线上营销平台
  • 专题网站建站vi设计
  • 做网站客户给不了素材百度快速收录
  • 东莞自适应网站建设互联网营销培训课程
  • 上海门户网站论坛关键词优化公司前十排名
  • 易语言网站开发推广搜索引擎
  • 如何用手机做网站吗长沙seo网站优化公司
  • PHP网站开发工程师网站策划书模板
  • 如何编写一套网站模板互联网线上推广