导航:首页 > 源码编译 > 递归算法求最大整数边长

递归算法求最大整数边长

发布时间:2022-07-16 22:22:00

① 递归法计算两个整数最大公约数,网上搜了好多运行都有错误,希望是自己写的。c语言

这就是递归实现的啊
#include <stdio.h>
int maxCommonDivisor(int a,int b);
void main()
{
int a,b,rst;
printf("Input a and b:");
scanf("%d%d",&a,&b);
rst=maxCommonDivisor(a,b);
printf("%d和%d的最大公约数是:%d\n",a,b,rst);
}

int maxCommonDivisor(int a,int b)
{
int tmp;
if(a==0||b==0)
return a!=0?a:b;
if(a>b)
tmp=a%b;
else
{
tmp=b%a;
b=a;
}
maxCommonDivisor(tmp,b);
}

② C语言数组实验 已知整形数组,设计递归算法实现下列运算:求最大整数,求整数之和,求整数平均值

如下:

#include<stdio.h>
intmax(inta[],intn)
{
if(n==2)
{
if(a[0]>a[1])
{
returna[0];
}
else
{
returna[1];
}
}
inttemp=max(a,n-1);
if(a[n-1]>temp)
{
returna[n-1];
}
else
{
returntemp;
}
}
intsum(inta[],intn)
{
if(n==1)
{
returna[0];
}
else
{
returna[n-1]+sum(a,n-1);
}
}
doubleave(inta[],intn)
{
if(n==1)
{
returna[0]/5.0;
}
else
{
returna[n-1]/5.0+ave(a,n-1);
}
}
intmain()
{
inta[5]={1,2,3,4,5};
printf("%d,%d,%lf",max(a,5),sum(a,5),ave(a,5));
return0;
}

③ 递归算法求最大值

10进制整数转换为2进制数,采用除2反向取余法:
1021/2=510......1
510/2=255......0
255/2=127......1
127/2=63......1
63/2=31......1
31/2=15......1
15/2=7......1
7/2=3......1
3/2=1......1
1/2=0......1
从下往上读取每一次的余数,就是转换的结果:
1021=(1111111101)2

④ 运用递归法求一组数中的最大值与最小值 C语言,

可以用递归,将数组排序后,就可以直接得到最大最小值。

#include<stdio.h>
intpx(int*a,intindex,intsize);//用递归将数组a升序排列,index传0
intmain()
{
inta[]={6,4,2,8,9,5,7,1,10,3},size=10;
px(a,0,size);
printf("数组{6,4,2,8,9,5,7,1,10,3}中最大值:%d,最小值:%d ",a[size-1],a[0]);
}
intpx(int*a,intindex,intsize)
{
inti,n;
if(index==size-1)
return1;
for(i=index+1;i<size;i++)
if(a[index]>a[i])
n=a[index],a[index]=a[i],a[i]=n;
returnpx(a,++index,size);
}

⑤ 编写一个递归算法,求长度为n的一维数组中的最大元素。

楼上的代码写得有点繁琐,其实一个简单的if结构就可以实现这个递归。
#include
<iostream>
using
namespace
std;
int
max(int
[],int);
//
max函数原型
int
main()
{
int
a[10]={1,3,8,2,4,9,5,7,6,0};
cout
<<
"a数组最大元素为:"
<<
max(a,10)
<<
endl;
return
0;
}
int
max(int
arr[],
int
size)
//
max函数定义
{
if
(size
==
2)
return
arr[0]
>
arr[1]
?
arr[0]
:
arr[1];
else
return
max(arr,size
-
1)
>
arr[size
-
1]
?
max(arr,size
-
1)
:
arr[size
-
1];
}

⑥ 用递归算法求一维整型数组的最大值。求代码,求算法讲解

int max(int array[ ],int n)
{
if (n<=1)
return(array[0]); // 就一个数,最大值就是自已
int t=max(array+1,n-1); // 求后面 n-1个数的最大值
if (t>array[0]) // t 比第一个大,返回最大 t
return(t);
else
return(array[0]); // t小,返回array[0];
}

⑦ 已知整形数组,用递归的算法实现下列计算: 求数组整数的最大值,求数组整数的和,求数组整数的平均值

int m(int*a,int n)
{
if(n==0)return a[n];
else return a[n]>m(a,n-1)?a[n]:m(a,n-1);
}

⑧ 已知A[n]为整数数组,试写出实现下列运算的递归算法: (1) 求数组A中的最大整数。 (2) 求n个整数的和。

//递归求数组A[n]中的最大整数;
int maxintA(int n)
{
if(0 == n) return 0;//数组为空
if(1 == n) return a[n-1];//数组中只有一个元素

return (a[n-1] > manxintA(n-1)?a[n-1]:maxintA(n-1));//递归

}

//递归求素组A[n]中n个整数的和
int sumofA(int n)
{
if(0==n) return 0;// 数组为空
if(1==n) return a[n-1];// 数组中只有一个元素

return (a[n-1]+sumofA(n-1));//递归
}

阅读全文

与递归算法求最大整数边长相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:577
python员工信息登记表 浏览:375
高中美术pdf 浏览:158
java实现排列 浏览:511
javavector的用法 浏览:979
osi实现加密的三层 浏览:230
大众宝来原厂中控如何安装app 浏览:911
linux内核根文件系统 浏览:240
3d的命令面板不见了 浏览:523
武汉理工大学服务器ip地址 浏览:146
亚马逊云服务器登录 浏览:522
安卓手机如何进行文件处理 浏览:70
mysql执行系统命令 浏览:928
php支持curlhttps 浏览:142
新预算法责任 浏览:443
服务器如何处理5万人同时在线 浏览:249
哈夫曼编码数据压缩 浏览:424
锁定服务器是什么意思 浏览:383
场景检测算法 浏览:616
解压手机软件触屏 浏览:348