27 Şubat 2012, 18:18
|
#1 |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| 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. |
| |