Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Bu siteyi Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.

0



"girilen bir sayının obebini bulan program" işleminin sonucu hep 1 çıkıyor

//Girilen sayının OBEB'ini bulan program by Ertuğrul ÇOBAN

  1.             int sayi_1, obeb = 1, bolen = 2;
  2.             
  3.             Console.WriteLine("");            
  4.  
  5.  
  6.             Console.Write("\nBirinci sayıyı giriniz:");
  7.             sayi_1 = Convert.ToInt32(Console.ReadLine());
  8.             Console.WriteLine();
  9.             Console.WriteLine("===========================");
  10.             Console.WriteLine("===========================");
  11.  
  12.  
  13.             while (sayi_1 > 1)
  14.             {
  15.                 if (sayi_1 % bolen == 0  && bolen == 0)
  16.                 {
  17.                     obeb *= bolen;
  18.                     sayi_1 /= bolen;                    
  19.                 }
  20.                 else if (sayi_1 % bolen == 0)
  21.                 {
  22.                     sayi_1 /= bolen;
  23.                 }                
  24.                 else
  25.                 {
  26.                     bolen++;
  27.                 }
  28.             }                        
  29.             Console.Write("\nGirilen sayının OBEB'i: {0}", obeb);
  30.                         
  31.              Console.ReadKey();
  32.  
  33.  

Soran:05.05.18 22:31
misafir  

1 Cevap


0


Alttaki aynı işi yapar:

  1.   public static int OBEB(int x1, int x2) {
  2.       if (x1 < 0 || x2 < 0) {
  3.           throw new ArgumentException("Sayılardan birisi negatif olamaz.");
  4.       }
  5.       int a, b, g, z;
  6.  
  7.  
  8.       if (x1 > x2) {
  9.           a = x1;
  10.           b = x2;
  11.       } else {
  12.           a = x2;
  13.           b = x1;
  14.       }
  15.  
  16.  
  17.       if (b == 0) return 0;
  18.  
  19.  
  20.       g = b;
  21.       while (g != 0) {
  22.           z= a % g;
  23.           a = g;
  24.           g = z;
  25.       }
  26.       return a;
  27.   }

Veya daha kısa bir şekli:

  1.     static int OBEB(int a, int b)
  2.     {
  3.         int kalan;
  4.     
  5.         while( b != 0 )
  6.         {
  7.             kalan = a % b;
  8.             a = b;
  9.             b = kalan;
  10.         }
  11.       
  12.         return a;
  13.     }

Bu da OKEK. Belki lazım olur:

  1.     public static int OKEK(int a, int b)
  2.     {
  3.         int num1, num2;
  4.         if (a > b)
  5.             num1 = a; num2 = b;
  6.         else
  7.             num1 = b; num2 = a;
  8.  
  9.  
  10.         for (int i = 1; i < num2; i++)
  11.         {
  12.             if ((num1 * i) % num2 == 0)
  13.             {
  14.                 return i * num1;
  15.             }
  16.         }
  17.         return num1 * num2;
  18.     }
Bu da kısa OBEB örneği kullanılarak OKEK:

  1. static int OBEB(int a, int b)
  2. {
  3. while (b != 0)
  4. {
  5. int temp = b;
  6. b = a % b;
  7. a = temp;
  8. }
  9. return a;
  10. }
  11.  
  12. static int OKEK(int a, int b)
  13. {
  14. return (a / OBEB(a, b)) * b;
  15. }
Kaynak: https://stackoverflow.com/questions/13569810/least-common-multiple


Cevaplayan: 07.05.18 12:34
cevapsitesi
102,040p 16ü

Bir cevap yazın: