Project Euler'in 2.problemi Fibonacci serisi ile ilgili. Ben de bu yazıda 1 ve 2 ile başlayarak Fibonacci serisinin ilk 10 elemanını bulacağım.
C, C# ve PHP ile yazdığım kodları paylaşacağım ancak ilk önce algoritmaya biraz göz atalım.
1 ve 2 ile başlayacağız. Bu durumda
1.eleman -> 1
2.eleman -> 2
3.eleman -> 1 + 2 = 3
4.eleman -> 2 + 3 = 5
5.eleman -> 3 + 5 = 8
6.eleman -> 5 + 8 = 13
7.eleman -> 8 + 13 = 21
8.eleman -> 13 + 21 = 34
9.eleman -> 21 + 34 = 55
10.eleman -> 34 + 55 = 89
Bir dizi oluşturuyorum. Dizimin adı dizi olsun. dizi[0] = 1 ve dizi[1] = 2 yapıyorum.
2'den başlayarak bir for döngüsü oluşturuyorum.
for(i=2;i<10;i++)
{
dizi[i] = dizi[i-1] + dizi [i-2];
}
şeklinde işlemleri yaptırıyorum.
PHP KODU
<?php
$dizi = Array();
$dizi[0] = 1;
$dizi[1] = 2;
for($i=2;$i<10;$i++)
{
$dizi[$i] = $dizi[$i-1] + $dizi[$i-2];
}
for($i=0;$i<10;$i++)
{
echo $i+1 . ".eleman = " .$dizi[$i] . "<br />";
}
?>
C KODU
#include<stdio.h>
#include<conio.h>
main()
{
int i;
int dizi[10];
dizi[0] = 1;
dizi[1] = 2;
for(i=2;i<10;i++)
{
dizi[i] = dizi[i-1] + dizi[i-2];
}
for(i=0;i<10;i++)
{
printf("%d.eleman = %d\n",i+1,dizi[i]);
}
getch();
}
C# KODU
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace fibonacci
{
class Program
{
static void Main(string[] args)
{
int[] dizi = new int[10];
dizi[0] = 1;
dizi[1] = 2;
for (int i = 2; i < 10; i++)
{
dizi[i] = dizi[i - 1] + dizi[i - 2];
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i+1 + ".eleman = " + dizi[i]);
}
Console.ReadKey();
}
}
}
0 yorum:
Yorum Gönder