導航:首頁 > 源碼編譯 > 遞歸演算法求最大整數邊長

遞歸演算法求最大整數邊長

發布時間: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));//遞歸
}

閱讀全文

與遞歸演算法求最大整數邊長相關的資料

熱點內容
a4單片夾l型文件夾透明 瀏覽:621
聽聽呼嚕聲讓你解壓 瀏覽:708
編譯錯誤和功能錯誤的區別 瀏覽:877
如何過加密狗 瀏覽:275
交換機的代理伺服器如何設置 瀏覽:4
為什麼進體驗服顯示伺服器未響應 瀏覽:999
vs生成解決方案就是編譯嗎 瀏覽:960
怎樣獲得我的世界命令方塊兒 瀏覽:248
朗達眾包app哪裡下載 瀏覽:298
串口at命令 瀏覽:497
載入字體命令 瀏覽:721
python偽裝爬蟲 瀏覽:652
藍隊雲伺服器哪裡最好 瀏覽:814
ftp的伺服器連接如何保存 瀏覽:835
html裝修網站源碼 瀏覽:210
以太坊源碼p2p 瀏覽:564
按需的雲伺服器怎麼備案 瀏覽:849
怎麼讓安裝包適配安卓11 瀏覽:360
伺服器怎麼做垃圾桶 瀏覽:444
h3cping命令 瀏覽:750