paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 Beyler bonus projesi. Nası hesaplatacağım? İnternette kayda değer bir şey bulamadım. iostream headerını kullanarak yapılan bir kaç şey var ama işlenmeyen bir headerı kullanarak proje versem çıkmaz. Yardımcı olacak biri var mıdır?
Borastus Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 bignumber sınıfları olması gerek
Suark Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 e çarpıcan. en uzun double vardı sanırım dimi? ha bide precision istiosan, bignumber olayına girmen lazım ama gerek yok sanırsam. ha eğer, rakamlara sığmıyorsa, eksponenşıl şekilde göstermene izin var mı? varsa, belli bi değerden sonra stringe çevir, eksponenşıl yazdır öle hesaplat
paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Konuyu açan Mesaj tarihi: Aralık 30, 2013 ya sıkıntı şu, kullanabileceğim tek library stdio ve string stack queue vs. yani ekstra bir şey ile çözemem kabul olmaz. sıkıntı oradan doğuyor işte.
Kojiroh Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 O zaman kendi class'ını yazacan mecbur. unsigned long'ları linked list şeklinde tutup taşmaları bilmem neleri buna göre ayarlayabilirsin gibi. Hem faktoriyel yaptığın için signed muhabbetiyle uğraşmana da gerek yok. Ha implemantasyonu nasıl olur dersen şimdi onu bilemedim sdf
paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Konuyu açan Mesaj tarihi: Aralık 30, 2013 http://www.cquestions.com/2010/08/write-c-program-to-find-factorial-of.html şurda buldum çözdü sorunumu sanırım çok güzel bir şekilde :D de buradaki "long i" nedir? intiger ile farkı ne yani?
Suark Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 long işte daha büyük integer. double a da bakabilirsin oda kocaman.
Fly Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 STOP long integer, adi ustunde daha genis alani kapsayani genel kural olarak 32 bitlik makinede int 32 ise long 64 bit her zaman boyle olmuyor tabi, o yuzden long long vb tipler var double ise tamsayi degil, bildigin floatin double precision olani ikisini ayni is icin kullanirsan newegg'de fiyat betimlemek icin floating point kullanip 150.000000000000001 usd cikaran insanlar gibi endise verici durumlara dusersin
monoscope Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 1000liği şöyleymiş i=2999; //start from end of array. numArr[2999]=1; for(count=2;count<=1000;count++) { while(i>0) { total=numArr[i]*count+rem; rem=0; if(total>9) { numArr[i]=total%10; rem=total/10; } else numArr[i]=total; i--; } rem=0; total=0; i=2999; }
paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Konuyu açan Mesaj tarihi: Aralık 30, 2013 Kod #include #define MAX 10000 void factorialof(int); void multiply(int); int length = 0; int fact[MAX]; int main(){ int num; int i; printf("Enter any integer number : "); scanf("%d",&num); fact[0]=1; factorialof(num); printf("Factorial is : "); for(i=length;i>=0;i--){ printf("%d",fact); } return 0; } void factorialof(int num){ int i; for(i=2;i<=num;i++){ multiply(i); } } void multiply(int num){ [i]long i,r=0; int arr[MAX]; for(i=0;i<=length;i++){ arr[i]=fact[i]; } for(i=0;i<=length;i++){ fact[i] = (arr[i]*num + r)%10; r = (arr[i]*num + r)/10; //printf("%d ",r); } if(r!=0){ while(r!=0){ fact[i]=r%10; r= r/10; i++; } } length = i-1; } şurda long olan değeri int ile değiştirsem bile sonucu gayet güzel veriyor. 32 ve 64 bit dışnıda ikisi de aynı datayı alabiliyormuş. kod güzel buldum galiba.
paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Konuyu açan Mesaj tarihi: Aralık 30, 2013 yalnız şöyle bir sıkıntı var, fonksiyonlarda ne yaptığını çözemedim. multiply da array'e mi atıp çarpıyor? length napıyor bir de, yukarıda 0'a eşit olarak tanımlanmış, for looplarından i 0'dan lenght'e kadar gitsin diyor length hep 0 ama?
Kharon Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 olay divide and conquer. genede n! icin komple n-1 n-2 n-3... 1 e kadar carpacagina atiyorum tek sayilari ayri, cift sayilari ayri hesaplatip kenara koyup sonra onlari ayri carptirabilirsin. en son ne kadar buyuk bi faktoriyel hesaplamak istiyorsan o kadar bolersin.
paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Konuyu açan Mesaj tarihi: Aralık 30, 2013 ya aslında işte buldum önceki sayfada olan kod süper çalışıyor. 2 saattir kodu inceliyorum kayboldum gittim içinde. anlamadım hala.
paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Konuyu açan Mesaj tarihi: Aralık 30, 2013 hesapladı valla. http://www.nitrxgen.net/factorialcalc.php şu siteye göre doğru.
Deacon Mesaj tarihi: Aralık 30, 2013 Mesaj tarihi: Aralık 30, 2013 Duzgun bi paste servisine indent edilmis halde koyup linklersen soz veriyorum usenmicem anlayip aciklicam nasil calistigini.
paradoksalkedi Mesaj tarihi: Aralık 30, 2013 Konuyu açan Mesaj tarihi: Aralık 30, 2013 http://paste2.org/N23P1vDL buyur.
paradoksalkedi Mesaj tarihi: Aralık 31, 2013 Konuyu açan Mesaj tarihi: Aralık 31, 2013 beyler şu length değeri hiç bir zaman oynamıyor ki? 0'a eşit başlayıp sonradan loopda lenghte kadar oluyor fakat ulan lenght zaten 0. acil anlayabilmem lazım şunu :(
Kharon Mesaj tarihi: Aralık 31, 2013 Mesaj tarihi: Aralık 31, 2013 asagi yukari yaptigi sey su; 2 adet array aciyor. birinci array global (fact[max]) digeri lokal (arr[i ]) faktoriyel methodunun icinde 2 den baslayarak soylenilen sayiya kadar sayiyor. her sayi icin faktoriyel methodu multiply methodunu cagiriyor. Multiply methodu once global arrayden(eger yapilmissa su ana kadar saklanan carpimin basamaklari) lokal e kopyaliyor arrayi. Sonra gidiyor su ana kadar ki yapilan asamaya kadar ilerliyor (length), o ilerledigi pozisyona , lokal array ile multiply in getirdigi variable i (int num) i carpip , basamagini (%10) , fact arrayine yaziyor. (yeni carpim icin komple her basamagi tek tek) while r!=0 dongusunu anlamak icin carpim kagit nasil yapiliyor anlaman lazim. 14 11 X------ 14 14 +------ 154 Ayrica elindeki koddan ziyade suradaki elemanlarin yaptiklarina ve commentlerde konustuklarina bakarsan daha rahat anlarsin diye dusunuyorum. Bazi seyleri yazmadan anlayamazsin.
Öne çıkan mesajlar