Javada iki sayının OBEB’ini bulan program
Javada kendini çağıran metotlar ile iki sayının OBEB ini bulan programın genel algoritması şu şekildedir.
1-a,b sayısı birbirine eşit ise zaten en büyük ortak bölenleri kendileridir.Değilse alt satıra geç.
2-a sayısı b sayısından küçükse sayıların yerini değiştir ve alt satıra geç.
3-a sayısından b sayısını çıkar ve elde edilen sonucu a sayısının yerine yaz ve b sayısıda bir önceki sayı olan b sayısı ile aynı kalsın ve birinci adıma geç.
Genel algoritma mimarisi bu şekildedir burda genel amacımız sayıları birbirine eşitlemeye çalışmak ve eşitlendiği zaman eşitlenen sayıyı yazmaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package OBEBProgrami; public class OBEB{ public static void main(String[] args) { dondur(42,28); } static void dondur(int a,int b){ if(a != b){ if(a<b){ dondur(b,a); }else{ dondur((a-b),b); } }else{ System.out.println(a); } } } |
Cevap: 14
Yorum ( 1 )
Aşağıdaki implementation hem daha kısa hem de daha hızlıdır.
int gcd( int a , int b )
{
if( b == 0 ) return a;
return gcd(b,a%b);
}