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

2024.02.11作业

1.请使用递归实现n!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int func(int n)
{
    if (n == 1)
    {
        return 1;
    }

    return func(n - 1) * n;
}

int main()
{
    int n = 5;

    printf("%d\n", func(5));

    return 0;
}


2.请使用递归实现0-n的和

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int func(int n)
{
    if (n == 1)
    {
        return 1;
    }

    return func(n - 1) + n;
}

int main()
{
    int n = 5;

    printf("%d\n", func(5));

    return 0;
}


3.请使用递归实现斐波那契

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int func(int n)
{
    if (n <= 0)
    {
        return 0;
    }

    if (n == 1 || n == 2)
    {
        return 1;
    }

    int a = func(n - 1) + func(n - 2);

    return a; 
}

int main()
{
    int n = 10;

    for (int i = 1; i < n; i++)
    {
        printf("%4d", func(i));
    }
    puts("");

    return 0;
}


4.请使用递归实现二进制转换

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void func(int n)
{
    if (n < 2)
    {
        printf("%d", n);
        return;
    }

    func(n / 2);
    printf("%d", n % 2);
}

int main()
{
    int n;
    scanf("%d", &n);

    func(n);
    puts("");

    return 0;
}


5.请递归实现计算各个位数字之和

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int func(int n)
{
    if (n == 0)
    {
        return 0;
    }

    return n % 10 + func(n / 10);
}

int main()
{
    int n;
    scanf("%d", &n);

    printf("%d\n", func(n));

    return 0;
}


6.请递归实现计算各个位数字的乘积

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int func(int n)
{
    if (n == 0)
    {
        return 1;
    }

    return n % 10 * func(n / 10);
}

int main()
{
    int n;
    scanf("%d", &n);

    printf("%d\n", func(n));

    return 0;
}


7.请使用递归实现计算单词逆置

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void func(char* s, int i, int j)
{
    if (i >= j)
    {
        return;
    }

    char t = s[i];
    s[i] = s[j];
    s[j] = t;

    func(s, i + 1, j - 1);
}

int main()
{
    char s[] = "hello";
    int len = strlen(s) - 1;

    func(s, 0, len);
    puts(s);

    return 0;
}


http://www.kler.cn/news/234911.html

相关文章:

  • FPGA_简单工程_VGA显示驱动器
  • 机器学习系列——(十三)多项式回归
  • openssl3.2 - exp - RAND_bytes_ex
  • 【Linux】信号保存与信号捕捉处理
  • ubuntu20安装mongodb
  • opencv C++ dnn模块调用yolov5以及Intel RealSense D435深度相机联合使用进行目标检测
  • [office] excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 #笔记#学习方法
  • 牛客——递归实现组合型枚举(枚举,dfs)
  • 浅谈人工智能之深度学习~
  • CPP项目:Boost搜索引擎
  • 【并发编程】原子累加器
  • 企业飞书应用机器人,使用python发送图文信息到群
  • SpringCloud-Eureka服务注册中心测试实践
  • CSS 2D转换 3D动画 3D转换
  • ###C语言程序设计-----C语言学习(12)#进制间转换,十进制,二进制,八进制,十六进制
  • K8S之运用节点选择器指定Pod运行的节点
  • SERVLET间通信
  • vue父组件监听子组件是否加载完毕通过ref调用子组件的函数
  • 940. 不同的子序列 II
  • C语言——oj刷题——模拟实现库函数strlen
  • Solidworks:平面工程图练习
  • Netty应用(七) 之 Handler Netty服务端编程总结
  • 【北邮鲁鹏老师计算机视觉课程笔记】05 Hough 霍夫变换
  • ChatGpt报错:We ran into an issue while authenticating you解决办法
  • 【Java】笔记:JDBC中Statement常用的几个执行函数
  • Linux中FIFO管道
  • 第六篇【传奇开心果系列】Vant of Vue 开发移动应用示例:深度解析响应式布局支持
  • acwing14期周赛---------安排时间(贪心+枚举)
  • STM32控制JQ8400语音播报模块
  • JavaScript 设计模式之外观模式