吉林大学超星高级语言程序设计实验06 递归程序设计(2020级)

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 s[100];
int max1(int a[],int n){
	if(n==0)
	return a[0]; 
	if(n>0){
		if(a[n]>max1(a,n-1))
		return a[n];
		else
		return max1(a,n-1);	
	}//第一次编的这个函数计算量太大,遂抛弃 
}
int max2(int*p,int n,int r,int i){
	if(n==i)
	return r;
	if(r<*(p+i))
	r=*(p+i);
	return max2(p,n,r,i+1);
}
int main(void){
	int q,i,n;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	scanf("%d",&s[i]);
	q=max2(s,n,s[0],0);
	printf("%d",q);
}

题目编号 :Exp06-Enhance03

题目名称:截木条

题目描述:

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

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

输入:顺次从键盘输入两个正整数n和k(n>10,k>3)。

输出:木条根数。

样例1:

输入: 20 4
输出: 7
样例2:

输入: 3 20
输出: 1

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

欢迎大家交流

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值