Tekil Mesaj gösterimi
Alt 27 Şubat 2012, 18:18   #1
Çevrimdışı
aSi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Floyd Üçgeni (Floyd’s Triangle)





Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Robert Floyd tarafından tasarlanan bir sayı üçgenidir. Üçgen, her satırda, o satır kadar elemandan oluşan ve ardışık sayma sayılarının satırlara dağıtılması ile şekillenen, sağa yaslı bir dik üçgen olarak tanımlanabilir: Floyd üçgeninin ilk sütununda bulunan sayılara, merkezi poligon sayıları (central polygon numbers) veya tembel pizzacı serileri (lazy caterer’s sequence) isimleri verilir. Bu ikinci isimlendirme, bir pizzacının, pizzasını en az bıçak darbesi ile en çok parçaya ayırma hevesinden gelmektedir.Floyd üçgeninin ilk sütununu oluşturan seri, aşağıdaki formül ile hesaplanabilir: k = (n2 + n + 2) / 2 , bu denklemdeki n satır sayısı, k ise bu satırdaki ilk elemandır (veya aynı formül merkezi poligon sayılarını bulmak için de kullanılır)
Floyd üçgeninin diğer bir özelliği ise, herhangi bir satırdaki sayıların toplamının aşağıdaki formül ile bulunabilmesidir:
n(n2 + 1)/2

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include<stdio.h> #include<conio.h> int main() { int satir, i, j ,deger=1,sayac1=0,satir_sayi,k,eleman_toplami;// printf("Ucgenin yuksekligini giriniz:"); scanf("%d", &satir);/*aslında burada kaç satırdan oluşacağını soruyoruz.*/ printf("hangi satirde islem yapmak istiyorsunuz:"); scanf("%d",&satir_sayi); for(i=0; i<satir; i++)//sutun için for { sayac1++; if(deger<=10) { for(j=0; j<=i;j++)//2. satır ie 2 sayi yaz demektir: { printf("%d ",deger); deger++; } printf("\n\n"); if(satir_sayi+1==sayac1) { k=( (satir_sayi*satir_sayi) + satir_sayi+2 )/2;//satirin ilk elemanını bulmak için k o satırın ilk elemanıdır... eleman_toplami=( (satir_sayi+1)*((( satir_sayi+1)*(satir_sayi+1))+1 ) )/2; //satir sayisini 1 arttırarak işlem yapmamın sebebi satir sayisini 0 dan başlamasıdır.. } } else { sayac1=0; for(j=0; j<=i;j++) { sayac1++; printf("%d ",deger); deger++; } printf("\n\n"); } if(satir_sayi==sayac1) { k=( (satir_sayi*satir_sayi) + satir_sayi+2 )/2;//burada k o satırın ilk elemanını verir bizlere... eleman_toplami=( (satir_sayi+1)*( (satir_sayi+1)*(satir_sayi+1)+1 ) )/2; } } printf("\n"); printf("satir sayisi %d\n\n",sayac1-1); printf("satirin ilk elemani k= (n*n+n+2)/2 fomulunden %d \n\n",k); printf("secilen satirin elemanlari toplami n(n*n+1)/2 formulunden %d\n\n",eleman_toplami); //buradaki n satir_sayisini ifade etmektedir getch(); }


__________________
Doğruları biliyorsan, yalanları dinlemek eğlencelidir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklamver bizimmekan