栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

每日四题第一日

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

每日四题第一日

学习目标:

熟练运用c语言


学习内容:(牛客c语言入门题)
  1. 斐波那契数列
  2. 反转字符串
  3. 判断是否为回文字符串
  4. 最大公约数

学习时间:

7月3日早10点——11点


学习产出:
1、斐波那契数列

题目:大家都知道斐波那契数列,现在要求输入一个正整数 n ,请你输出斐波那契数列的第 n 项。

示例:

 

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

关于斐波那契数列,我们可以发现它前两个数都是1,即可通过if判断前两个数,后面的数依次是前面的数相加,及2=1+1,3=1+2,5=2+3;

第一种解法:通过性质的加减;

int Fibonacci(int n ) {    
    int a=1,b=1;//a为前一个数,b为后一个数
    if(n<=2)
    {return 1;}
    else
    {
        for(int i=3;i<=n;i++)
        {
            int t=b;
            b=a+b;
            a=t;
        }
    }
    return b;
}

第二种解法:通过规律进行递归(F(n)=F(n - 1)+F(n - 2))

int Fibonacci(int n ) {
    if(n<=2)
    return 1;
    else
    return Fibonacci(n-1)+Fibonacci(n-2);
}
2、反转字符串

写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。

示例:

 

 代码:

char* solve(char* str ) {
    int a=strlen(str)-1;
    int b=0;
    while(b

解释:首先定义a通过strlen函数获取str字符串长度,因为从0开始计算,a=字符串长度-1,b从0开始,while判断当a

3、判断是否为回文字符串

给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。

示例:

 

 代码:

bool judge(char* str ) {
    int a=strlen(str)-1;
    int b=0;
    while(b

解释:首先定义a通过strlen函数获取str字符串长度,因为从0开始计算,a=字符串长度-1,b从0开始,通过循环判断b

4、最大公约数

如果有一个自然数 a 能被自然数 b 整除,则称 a 为 b 的倍数, b 为 a 的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。

示例·:

 

 代码:

int gcd(int a, int b ) {
    if(b%a==0)
    {return a;}
    else
    {return gcd(b%a,a);}
}

解释:本题默认b为较大的数,如果b对a取余为0的话,证明b刚好被a整除,则相对于小的a则是最大公约数,如果没有刚好整除,则通过递归调用这个取余的数,直到刚好整除再一级一级向上返回,输出最大公约数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号