目录

1. 排列组合

2. Hermite多项式

3. Ackerman函数

4. 最大公因数

5. 顺序检索

6. 最大元素

7. 数组反序

8. 截木条

9. 十进制转换任意进制


1. 排列组合

题目编号:Exp06-Basic01,GJBook3-10-02

题目名称:排列组合

问题描述:编写程序求函数C(m,n)的值。

输入:从键盘随机输入一个自然数和一个非负整数,分别作为m和n的值(m≥n)。

输出:函数C(m,n)的值。

样例1:输入:4  1   输出:4

样例2:输入:6  2   输出:15

#include<stdio.h>
int c(int,int);
int main(void)
{int x,y;scanf("%d%d",&x,&y);printf("%d",c(x,y));return 0;
}
int c(int m,int n)
{if(n<0)return 0;if(n==0)return 1;if(n==1)return m;if(m<2*n)return c(m,m-n);if(m>=2*n)return c(m-1,n-1)+c(m-1,n);
}

2. Hermite多项式

题目编号:Exp06-Basic02,GJBook3-10-03

题目名称:Hermite多项式

题目描述:编写程序,用递归方法求解Hermite 多项式值。Hermite 多项式定义如下。

输入:从键盘随机输入一个非负整数和一个实数,作为n和x的值。

输出:H~n~(x)的值,精确到小数点后2位。

样例1:输入:0  1.5  输出:1.00

样例2:输入:2  2.4  输出:21.04

#include<stdio.h>
float h(int,float);
int main(void)
{int a;float b,y;scanf("%d%f",&a,&b);y=h(a,b);printf("%.2f",y);return 0;
}
float h(int n,float x)
{if(n==0)return 1.0;else if(n==1)return 2*x;elsereturn 2*x*h(n-1,x)-2*(n-1)*h(n-2,x);
}

3. Ackerman函数

题目编号:Exp06-Basic03,GJBook3-10-04

题目名称:Ackerman函数

问题描述:编写程序,计算 Ackerman 函数值。Ackerman 函数定义如下

输入:从键盘随机输入两个非负整数,分别作为m和n的值。

输出:Ack(mn)的值。

样例1:输入 2 3  输出 9

样例2:输入 3 2  输出 29

样例3:输入 0 3  输出 4

#include<stdio.h>
int ack(int,int);
int main(void)
{int x,y;scanf("%d%d",&x,&y);printf("%d",ack(x,y));return 0;
}
int ack(int m,int n)
{if(m==0)return n+1;if(n==0)return ack(m-1,1);if(m>0&&n>0)return ack(m-1,ack(m,n-1));
}

4. 最大公因数

题目编号 :Exp06-Basic04

题目名称:最大公因数

题目描述:编写程序,用递归方法求解m、n最大公约数。对正整数u和v 可以采用欧几里德辗转相除算法求它们的最大公因数,具体过程如下:

u% v → r~1~

v % r~1~ → r~2~

r~1~% r~2~ → r~3~

r~2~ % r~3~ → r~4~

… …

r~n-1~% r~n~ → r~n+1~=0

当余数r~n+1~=0时,计算过程结束,r~n~ 为正整数u 、v的最大公因数。

输入:从键盘随机输入两个正整数m和n。

输出:最大公因数。

样例1:输入:12 15  输出:3

样例2:输入:28 49  输出:7

#include<stdio.h>
int f(int,int);
int main(void)
{int x,y;scanf("%d%d",&x,&y);printf("%d",f(x,y));return 0;
}
int f(int m,int n)
{int r;if(m%n==0)return n;r=m%n;return f(n,r);
}

5. 顺序检索

题目编号:Exp06-Basic05,GJBook3-10-06

题目名称:顺序检索

题目描述:编写程序,用递归方法在整数组中进行顺序检索。

输入:第一行输入一个正整数n(0<n≤100),表示数组的元素个数;

第二行依次输入n个整数,作为数组的元素;

第三行输入待检索的关键字。

输出:如果数组中含有关键字,则输出其首次出现的位置(下标值较小的位置)否则输出NULL。

样例1:输入: 8 0 2 3 4 5 9 10 8 3

输出: 2

样例2:输入: 8 0 2 3 4 5 9 10 8 6

输出: NULL

#include<stdio.h>
int f(int);
int a[100],key,n;
int main(void)
{int i;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",a+i);scanf("%d",&key);if(f(0)==-1)printf("NULL");elseprintf("%d",f(0));return 0;
}
int f(int m)
{if(m==n)return -1;if(*(a+m)==key)return m;elsereturn f(m+1);
}

6. 最大元素

题目编号:Exp06-Enhance01,GJBook3-10-05

题目名称:最大元素

题目描述:编写程序,用递归方法求解长度为n的整型数组中最大元素值。

输入:第一行输入一个正整数n(0<n≤100),表示数组的元素个数;第二行依次输入n个整数,做为数组的元素。

输出:最大元素的值。

样例1:输入: 10

9 8 7 6 5 4 3 2 1 0

输出: 9

样例2:输入: 10

0 1 2 3 4 5 6 7 8 9

输出: 9

#include<stdio.h>
int f(int *,int);
int max(int,int);
int a[100];
int main(void)
{int i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",a+i);printf("%d",f(a,n));return 0;
}
int f(int *p,int n)
{if(n==0)return 0;return max(*p,f(p+1,n-1));
}
int max(int x,int y)
{if(x>y)return x;if(x<=y)return y;
}

7. 数组反序

题目编号:Exp06-Enhance02

题目名称:数组反序

题目描述:编写程序,用递归方法反序数组。

输入:第一行输入一个正整数n(0<n≤100),表示数组的元素个数;第二行依次输入n个整数,作为数组的元素。

输出:顺次输出逆序后数组中元素,元素间以一个西文空格间隔,最后一个元素后无字符。

样例1:输入: 8

0 2 3 4 5 9 10 8

输出: 8 10 9 5 4 3 2 0

样例2:输入: 5

0 2 3 3 5

输出: 5 3 3 2 0

#include<stdio.h>
void f(int *,int *);
int a[100];
int main(void)
{int i,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",a+i);f(a,a+n-1);for(i=0;i<n;i++){printf("%d",*(a+i));if(i!=n-1)printf(" ");}return 0;
}
void f(int *p,int *q)
{int r;if(p>=q)return;r=*p;*p=*q;*q=r;f(p+1,q-1);
}

8. 截木条

题目编号 :Exp06-Enhance03

题目名称:截木条

题目描述

给定一个长度为n的木条,将其在大致2/5的位置截断,得到2个长度仍为整数的木条;如果新得到的木条的长度仍旧超过规定长度k,将继续按照上述方法处理得到的木条,直到所有木条的长度都不大于k。

编写程序,用递归方法计算一个长度为n的木条,当规定长度为k时,其经过上述截断过程会得到多少根木条。其中:n、k均为正整数,且假设木条截断所得短木条长度四舍五入为正整数,长木条长度为总长减去短木条长度。

输入:顺次从键盘输入两个正整数n和k。

输出:木条根数。

样例1:输入: 20  4

输出: 7

样例2:输入: 3 20

输出: 1

#include<stdio.h>
int f(int,int);
int main(void)
{int n,k;scanf("%d%d",&n,&k);printf("%d",f(n,k));return 0;
}
int f(int x,int y)
{if(x<=y)return 1;return f(x*2/5,y)+f(x-x*2/5,y);
}

9. 十进制转换任意进制

题目编号 :Exp06-Enhance05,freshman-1022

题目名称:十进制转换任意进制

题目描述:编写程序,用递归方法将十进制的非负整数 N 转换为 b 进制数(2≤b≤36),其中字符、ASCII码值和数值之间的对应关系如下:

输入:一行输入两个非负整数,分别是十进制的 N 和 b  ,其中 0 <=N <=2^31 ,2 <=b <= 36 。

输出:N 的 b 进制数。

样例1:输入: 579 8  输出: 1103

样例2:输入: 579 20  输出: 18J

#include<stdio.h>
void f(long long,int);
int main(void)
{long long n;int b;scanf("%lld%d",&n,&b);if(n==0)//很重要printf("0");elsef(n,b);return 0;
}
void f(long long x,int y)
{if(x==0)return;f(x/y,y);if(x%y<=9)printf("%d",x%y);elseprintf("%c",x%y+55);
}

超星学习通 吉林大学 程序设计基础 实验07 递归程序设计(2022级)相关推荐

  1. 超星学习通小助手多线程工具Python

    话不多说,直接开始,不会安转的直接使用后面两款,下载直接打开exe运行 第一款:网课小助手python,需要自行安装Python环境(支持Windows.Mac.Linux各种环境) https:// ...

  2. 武汉超星学习通Java实习生一面

    自我介绍 Java有哪些数据类型 Java数据类型包括基本数据类型和引用数据类型两大类. 基本数据类型有8个,可以分为4个小类,分别是整数类型(byte/short/int/long).浮点类型(fl ...

  3. 人工智能与信息社会 超星学习通 网课 题库 大全 最全 中国大学 MOOC 北京大学 考试 题目 答案

    [单选题]2016年3月,人工智能程序()在韩国首尔以4:1的比分战胜的人类围棋冠军李世石. • A.AlphaGo • B.DeepMind • C.Deepblue • D.AlphaGo Zer ...

  4. 吉林大学 超星慕课 高级语言程序设计 实验07 递归程序设计(2022级)

    本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 1.题目名称:排列组合 问题描述:编写程序求函数C(m,n)的值. 输入:从键盘随机输入一个自然数和一个非负整数,分别作为m和 ...

  5. 2023超星学习通 王艳茹 创业基础 章节测试答案

    2.1创业的概念与功能 1[单选题]下列对创业定义理解不正确的一项是(B) A.创业者通过资源整合来达到创业目标 B.创业伴随新行业的出现 C.寻求机会是产生创业活动的重要一环 D.创业伴随新价值的产 ...

  6. 周信东c语言实验二实验报告,周信东主编最新版C语言程序设计基础实验一实验报告.doc...

    周信东主编最新版C语言程序设计基础实验一实验报告.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我 ...

  7. 用c语言编写程序出现undecla,济南大学C程序设计基础实验指导书

    <济南大学C程序设计基础实验指导书>由会员分享,可在线阅读,更多相关<济南大学C程序设计基础实验指导书(48页珍藏版)>请在人人文库网上搜索. 1.程序设计基础实验指导书信息科 ...

  8. java程序设计基础实验_JAVA程序设计基础实验1.doc

    JAVA程序设计基础实验1 实 验 报 告 一课 程JAVA程序设计实验项目Java语言基础成 绩学 号XXXXXXXX姓 名 XXXX实验日期2012-9-17专业班级计算机科学与技术(嵌入式方向) ...

  9. 陈东方 c语言程序设计基础实验与题解(答案),C语言程序设计基础实验与题解 黄远林 陈东方 李顺新...

    商品描述: 注意啦:旧书库存不准确经常断货,为保证您的利益,拍前请务必联系卖家咨询库存情况.     对于未事前进行咨询直接付款的买家,本店有权拒绝发货.请知悉    !                ...

  10. c语言实验报告周信东,周信东主编最新版c语言程序设计基础实验一实验报告

    周信东主编最新版c语言程序设计基础实验一实验报告 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 24.9 积分 --WORD格式--可编辑--专业资 ...

最新文章

  1. 十八、redis.conf配置详解
  2. QueryBuildRange中的表达式
  3. OpenGL百分比更紧密过滤
  4. 【bzoj4566】[Haoi2016]找相同字符【后缀自动机】
  5. 十六进制表示_教资信息技术之:十进制(正数)转二进制、八进制、十六进制...
  6. [导入]十大经典误会
  7. 【PMP】项目整合管理
  8. Prefer copy Over retain
  9. 层次化网络设计(三层网络结构)
  10. matlab绘制二元二次曲线图,MAtlab 做出二元二次方程的曲线
  11. ARM版本的IAR的下载和安装
  12. java正则表达式控制半角字符串输入
  13. composer安装yii2框架提示“fxp/composer-asset-plugin”与composer版本不符
  14. WAP中推送技术的分析与设计(转)
  15. 前端框架,库,组件,插件,控件的理解
  16. 城市感知体系十大典型应用场景
  17. FFT与IFFT公式记录
  18. PureMVC(AS3)剖析:实例
  19. 物联网操作系统碎片化问题分析与思考
  20. SVN客户端 创建分支/合并分支/切换分支

热门文章

  1. Redis项目应用场景与实例汇总
  2. python爬虫淘宝视频_python爬虫视频教程:一篇文章教会你用Python爬取淘宝评论数据...
  3. 人工智能学习思维导图
  4. 淘宝客公众号京东淘宝拼多多三合一源码三级代理系统网站源码
  5. Rhino入门教程---莫比乌斯环建模
  6. 正则 负数 python_如何系统的自学 Python?“从新手到大师”的百天之路(上)
  7. 清华大学李涓子教授:AI系统如何实现认知推理?
  8. 基于STM32的小说阅读器
  9. 查看计算机显卡驱动版本,电脑怎么更新显卡驱动?如何查看驱动是否正常
  10. 电子通讯录的基本模板