吉林大学超星MOOC高级语言程序设计 实验06 (2021级)
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 m,int n){if(n<0){return 0;}else if(n==0){return 1;}else if(n==1){return m;}else if(m<2*n){return c(m,m-n);}else{return c(m-1,n-1)+c(m-1,n);}
}
int main(){int n,m;scanf("%d %d",&m,&n);printf("%d",c(m,n));
}
2. (程序题)
题目编号 :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 dg(long long x,long long n){if(x==0){return;}dg(x/n,n);if(x%n<=9){printf("%c",x%n+'0');}else{printf("%c",x%n-10+'A');}
}
int main(){long long x,n;scanf("%lld %lld",&x,&n);if(x==0){ //0要特判一下printf("0");}dg(x,n);
}
3. (程序题)
题目编号 :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>
void dg(int m,int n){if(n==0){printf("%d",m);return;}dg(n,m%n);
}
int main(){int m,n;scanf("%d %d",&m,&n);dg(m,n);
}
4. (程序题)
题目编号: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>
int a[101];
void dg(int *a,int n){if(n==-1){return;}printf("%d ",a[n]);dg(a,n-1);
}
int main(){int n;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}dg(a,n-1);
}
5. (程序题)
题目编号: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>
double dg(double x,double n){if(n==0){return 1;}if(n==1){return 2*x;}if(n>1){return 2*x*dg(x,n-1)-2*(n-1)*dg(x,n-2);}
}
int main(){double x,n;scanf("%lf %lf",&n,&x);printf("%.2lf",dg(x,n));
}
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 max;
int a[101];
void dg(int *a,int x){if(x==-1){return;}if(a[x]>max){max=a[x];}dg(a,x-1);
}
int main(){int x;scanf("%d",&x);for(int i=0;i<x;i++){scanf("%d",&a[i]);}dg(a,x-1);printf("%d",max);
}
7. (程序题)
题目编号:Exp06-Basic03,GJBook3-10-04
题目名称:Ackerman函数
问题描述:编写程序,计算 Ackerman 函数值。Ackerman 函数定义如下
输入:从键盘随机输入两个非负整数,分别作为m和n的值。
输出:Ack(m, n)的值。
样例1:输入 2 3 输出 9
样例2:输入 3 2 输出 29
样例3:输入 0 3 输出 4
#include <stdio.h>
int dg(int m,int n){if(m==0){return n+1;}else if(n==0){return dg(m-1,1);}else{return dg(m-1,dg(m,n-1));}
}
int main(){int m,n;scanf("%d %d",&m,&n);printf("%d",dg(m,n));
}
8. (程序题)
题目编号: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 a[101];
int flag=-9999;
void dg(int *a,int x,int n){if(x==-1){return;}if(a[x]==n){flag=x;}dg(a,x-1,n);
}
int main(){int x,n;scanf("%d",&x);for(int i=0;i<x;i++){scanf("%d",&a[i]);}scanf("%d",&n);dg(a,x-1,n);if(flag!=-9999){printf("%d",flag);}else{printf("NULL");}
}
吉林大学超星MOOC高级语言程序设计 实验06 (2021级)相关推荐
- 吉林大学超星MOOC高级语言程序设计 实验07(2021级)
1. (程序题) [计2016级期末试题]构造一个表示教师的结构体(包含3个字段:姓名.性别.年龄),编写函数,读入n个教师的信息,存入一个结构体数组中(如下图所示).最后输出第n/2个教师的信息. ...
- 吉林大学 超星慕课 高级语言程序设计 实验06 结构体(2022级)
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 1.题目名称:复数运算 题目描述:复数可以写成A+Bi的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i^2=-1. 编 ...
- 吉林大学 超星慕课 高级语言程序设计 实验04 数组及其在程序设计中的应用 (2022级) 程序第04一13题
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 第三题后难度明显下降,所以后面的就一起发了 4. (程序题) 题目编号:Exp04-Basic04,GJBook3-06-19 ...
- 吉林大学 超星慕课 高级语言程序设计 实验07 递归程序设计(2022级)
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 1.题目名称:排列组合 问题描述:编写程序求函数C(m,n)的值. 输入:从键盘随机输入一个自然数和一个非负整数,分别作为m和 ...
- 吉林大学 超星慕课 高级语言程序设计 实验02 分支与循环程序设计(2022级)
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. Exp02-Basic01 #include<stdio.h> int main(void) {float a,b ...
- 吉林大学 超星慕课 高级语言程序设计 实验09 动态数据组织(2022级)
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 1. (程序题) 题目编号:Exp09-Basic01 题目名称:创建单链表 题目描述:请填写缺失代码完成程序,实现如下功能: ...
- 吉林大学 超星慕课 高级语言程序设计 实验05 指针及其在程序设计中的应用(2022级)
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 1.题目名称:字符串长度 题目描述:编写程序实现:使用自编函数int strlen(char *str),求字符串str长度: ...
- 吉林大学 超星慕课 高级语言程序设计 实验08 结构化程序设计(2022级)
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 其中的代码均没能在oj上进行测试,因此可能有误,请谅解. 除此以外部分题目设计深度优先搜索,因此可以分别用递归和堆栈实现,堆栈 ...
- 吉林大学 超星慕课 高级语言程序设计 实验04 数组及其在程序设计中的应用(2022级)程序第01——03题
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. EX04开始难度提升,由于篇幅问题就分开发了. 1.(编程题) 题目编号:Exp04-Basic01,GJBook3例-06- ...
- 吉林大学 超星慕课 高级语言程序设计 实验03 模块化程序设计(2022级)
本人能力有限,发出只为帮助有需要的人. 建议同学们自己写完后再进行讨论. 1. (单选题)有函数定义:int f(int x,int y):则下列函数调用正确的为( ) A.int n; n=f ...
最新文章
- dbca no protocol support
- hdu 1272 小希的迷宫 (并查集)
- 写一个http服务器
- 用java实现combin函数_Java8的CompletableFuture
- 【学习笔记】《Web安全深度剖析》整理
- 非视线成像:基于飞秒摄影技术
- 软件工程知识点总结——第一、二部分
- 这篇python正则表达式颠覆你的人生观,详细到让你怀疑人生!
- linux运算器小程序报告,小程序运算
- Python 爬虫实践:《战狼2》豆瓣影评分析
- springboot 与jsonp数据返回
- 为什么upupoo显示服务器维护中,首先,电脑能正常上网,有的网站可以上传图片,但就是不能显示上传图片的功能按钮,网页打开都正常。...
- 牛客网SQL刷题问题汇总
- 商品SPU与SKU说明
- Earth Engine下水体提取
- 机器人d435建图全是障碍物的原因分析
- 使用js对WGS-84 ,GCJ-02与BD-09的坐标进行转换
- google服务框架及安装方法以及google play出错解决!!
- C习题集95-105
- 013 | 民间戏剧类非物质文化遗产的保护与传承 | 大学生创新训练项目申请书 | 极致技术工厂