Örneğin 10000! hesabını nasıl yapabilirim?

soruldu: 27 Mar '13, 07:14

speeteco's gravatar image

speeteco
37349
cevap kabul oranı: 0%

değiştirildi: 27 Mar '13, 07:42

numankaraaslan's gravatar image

numankaraaslan
1.8k253749

@AliRıza Adıyaman, soru ne kadar basit ve Google'da rahatlıkla bulunabilir bile olsa, bu platformun da Google'daki o kaynaklardan biri olmasının ne zararı var?

(27 Mar '13, 07:47) mhkoca60 mhkoca60's gravatar image

Cevap verdiğiniz için hepinize çok teşekkür ederim öncelikle şunu belirtmek isterim ki bu soru benim ödevim ve bu yapılan bir şey olmasa bizim hocamız bize bu ödevi vermezdi ki örnek de vermişti yani kendisi yapmış aslında yapılıyor bigint gibi kütüphanenin kullanılmayacak olması elimizi kolumuzu bağladı.

(27 Mar '13, 17:37) speeteco speeteco's gravatar image

Bu ödevin ölçtüğü kriterler:

  1. Yaratıcılığın
  2. Sabrın ve çalışkanlığın

Yani kendi string çarpım fonksiyonunu yapacak kadar çalışkan mısın, yoksa örn. gamma fonksiyonu kullanacak kadar yaratıcı mısın? Biginteger biraz aşırıya kaçmak olacağından sadece iki string alıp birbiriyle klasik yöntem kullanarak toplayan bir fonksiyon yapman yeterli. Sonra çarpım için de bu fonksiyonu kullanabilirsin.

permanent link

cevaplandı: 28 Mar '13, 03:00

nurettin's gravatar image

nurettin
2.2k2441
cevap kabul oranı: 14%

nurettin bey cevabınız için teşekkür ederim gerçekten çok işime yaradı.

(28 Mar '13, 15:56) speeteco speeteco's gravatar image

Sorunu çözdüyseniz, cevabı doğru olarak işaretlemelisiniz.

(28 Mar '13, 16:53) mhkoca60 mhkoca60's gravatar image

Asagidaki alqoritm vasitesile buyuk sayilarin faktorialini hesablamaq mumkundur.

import java.util.Scanner;
public class N_Faktorial {
    public static void main(String [] args)
    { 
       int u=1,A[]=new int[9999999];
       Scanner scan =new Scanner(System.in);
       System.out.print("n=");
      int n=scan.nextInt();
      A[1]=1;
    for(int i=1;i<=n;i++) 
    {
       for(int j=1;j<=n;j++) {
            A[j]*=i;
        }           
       for(int j=1;j<=n;j++)
       {
         if(A[j]>9)
          {
          A[j+1]+=A[j]/10;
          A[j]%=10;       
          }
         if(A[u+1]!=0) {
               u++;
           } 
       }

   }
    System.out.print(n+"! in reqemleri sayi:"+u+"\\n Result: \\n");
     for(int i=u;i>=1;i--)
     {
         System.out.print(A[i]);
     }

    }

}
permanent link

cevaplandı: 29 Mar '13, 17:17

samirtk8's gravatar image

samirtk8
68459
cevap kabul oranı: 25%

Bu gibi soruların çözümü için programlama dilinden çok çözüm metodu önemlidir. Bilgisayar mühendisliğinde Nümerik Analiz konuları olarak geçer. VB dilinde bir örnek BURADA yapılmış sanırım. Bu gibi hesaplamalarda kullanılabilecek yöntemlerin temel mantığı ise BURADA açıklanmış.

permanent link

cevaplandı: 27 Mar '13, 07:40

numankaraaslan's gravatar image

numankaraaslan
1.8k253749
cevap kabul oranı: 19%

1

Ali rıza bey öncelikle cevap verdiğiniz için teşekkür ederim fakat ben 5! hesabını değil 10 000! hesabını veya daha büyük sayıların hesabını nasıl yaparım diyorum yani örneğin değişkeni mi integer olarak tanımladığım da en fazla 27 faktoriyelin hesabını buluyorum benim anlayamadığım ve yapamadığım çok büyük sayıların faktöriyelini hesaplarken nasıl bir yol izleyebileceğim.

(27 Mar '13, 07:38) speeteco speeteco's gravatar image

teşekkür ederim ama işte benim öğrenmek istediğim Bigint gibi özel kütüphanenin kullanılmayacak olması ama verdiğiniz link için çok teşekkür ederim.

(27 Mar '13, 07:48) speeteco speeteco's gravatar image

Sayı sınırını ortadan kaldırmak için güzel bir algoritma kurman gerekir. Örneğin float'ların listesini tutarak her float sınırını aşan sayı için listeye yeni bir float ekleyip yeni değeri oraya eklemek falan filan gibi. Saat sabahın iki buçuğu olmasaydı benim için de güzel bir beyin jimnastiği olurdu :)

permanent link

cevaplandı: 06 May '13, 18:08

kodmanyagha's gravatar image

kodmanyagha
3.1k132852
cevap kabul oranı: 15%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079

Soruldu: 27 Mar '13, 07:14

Görüntüleme: 1,274 kez

Son güncelleme: 06 May '13, 18:08

powered by BitNami OSQA