【C/PTA —— 11.函数2(课外实践)】

2023-11-25 09:45
文章标签 函数 实践 pta 课外

本文主要是介绍【C/PTA —— 11.函数2(课外实践)】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C/PTA —— 11.函数2(课外实践)

  • 一.函数题
    • 6-1 计算A[n]=1/(1 + A[n-1])
    • 6-2 递归实现顺序输出整数
    • 6-3 自然数的位数(递归版)
    • 6-4 分治法求解金块问题
    • 6-5 汉诺塔
    • 6-6 重复显示字符(递归版)
    • 6-7 显示平行四边形(右)(递归版)
  • 二.编程题
    • 7-2 N阶楼梯上楼问题

一.函数题

6-1 计算A[n]=1/(1 + A[n-1])

在这里插入图片描述

float fun(int n)
{if (n == 1)return 1;return 1 / (1 + fun(n - 1));
}

6-2 递归实现顺序输出整数

在这里插入图片描述

void printdigits(int n)
{int count = 0;int num1 = 0;num1 = n;if (n == 0){printf("0");return 0;}while (n){n /= 10;count++;}int num[100] = { 0 };n = num1;int count1 = 0;while (n){num[count1++] = n % 10;n /= 10;}for (int i = count1 - 1; i >= 0; i--){printf("%d\n", num[i]);}
}

6-3 自然数的位数(递归版)

在这里插入图片描述

int NumDigit(int number)
{if (number == 0)return 0;else if (number / 10 == 0)return 1;elsereturn NumDigit(number / 10) + 1;
}

6-4 分治法求解金块问题

在这里插入图片描述

int max(int a[], int m, int n) {int i;int max = a[0];for (i = m; i < n + 1; i++) {if (a[i] > max) {max = a[i];}}return max;
}int min(int a[], int m, int n) {int i;int min = a[0];for (i = m; i < n + 1; i++) {if (a[i] < min) {min = a[i];}}return min;
}

6-5 汉诺塔

在这里插入图片描述

void hanoi(int n, char from, char to, char by)
{void move(char x, char y);if (n == 1)move(from, to);else{hanoi(n - 1, from, by, to);move(from, to);hanoi(n - 1, by, to, from);}
}void move(char x, char y)
{printf("%c->%c\n",x,y);
}

6-6 重复显示字符(递归版)

在这里插入图片描述

void Show(int number, char symbol)
{void Print(char ch);if (number <= 0)return;if (number == 1)Print(symbol);else{Show(number - 1, symbol);Print(symbol);}
}void Print(char ch)
{printf("%c", ch);
}

6-7 显示平行四边形(右)(递归版)

在这里插入图片描述

void RtPara(int width, int height, char symbol)
{void PrintSpace(int number);if (width <= 0 || height <= 0)return;else{PrintSpace(height - 1);Show(width, symbol);putchar('\n');RtPara(width, height - 1, symbol);}
}void PrintSpace(int number)
{if (number <= 0)return;else{printf(" ");PrintSpace(number - 1);}
}

二.编程题

7-2 N阶楼梯上楼问题

在这里插入图片描述

int ClimbStairs(int number)
{if (number == 1)return 1;else if (number == 2)return 2;else{int dp[number+1];dp[1] = 1;dp[2] = 2;int i = 0;for (i = 3; i <= number; i++){dp[i] = dp[i - 1] + dp[i - 2];}return dp[number];}
}int main()
{int n = 0;int ways = 0;scanf("%d", &n);ways = ClimbStairs(n);printf("%d\n", ways);
}

这篇关于【C/PTA —— 11.函数2(课外实践)】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423555

相关文章

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()