Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
12
Cevap
1197
Tıklama
1
Öne Çıkarma
C'de Hatamı Bulamıyorum
T
9 yıl (1608 mesaj)
Yüzbaşı
Konu Sahibi

Merhaba, yanlış yere açtığımı biliyorum ama kısa süre içinde yardıma ihtiyacım var.
İndisi girilen fibonacci elemanını ekran yazan C programı isteniyor. Program çalışıyor ama ekrana hangi değeri yazarsam yazayım sonuç vermiyor.
Yazdığım kod şu şekilde;

#include <iostream>

int main() {

int sayi;
scanf("%d", &sayi);
int i=0;
int j=1;



for(int a=2; a<sayi; a++){

i==j;
j+=i;

if(sayi==a)
printf("%d", j);



}



return 0;
}


Edit:

Saçmalarken sorunu çözdüm yardımcı olanlara teşekkür ederim. Merak eden olursa çözümü şu şekilde oluyor.

int main() {

int sayi;
scanf("%d", &sayi);
int i=0, j=1, k=0;

if(sayi==1)
printf("%d", i);

if(sayi==2)
printf("%d", j);

for(int a=3; a<=sayi; a++){

k=i+j;
i=j;
j=k;

if(sayi==a)
printf("%d", j);

}

return 0;
}





< Bu mesaj bu kişi tarafından değiştirildi tisuanzii -- 3 Aralık 2017; 19:15:51 >

çok yardımcı oldunuz hocam teşekkür ederim.
Yoruma Git
tisuanzii - 9 yıl +4
A
9 yıl (2201 mesaj)
Binbaşı

Bu kod bir şey vermez zaten



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
9 yıl (1608 mesaj)
Yüzbaşı
Konu Sahibi

çok yardımcı oldunuz hocam teşekkür ederim.




Bu mesajda bahsedilenler: @alibeyindonanimhaberi
S
9 yıl (11138 mesaj)
Yarbay

a<sayi dersen a hiçbir zaman sayi'ya eşit olmaz zaten. a<=sayi demen lazım sanırım.


Bu mesaja 1 cevap geldi.
T
9 yıl (1608 mesaj)
Yüzbaşı
Konu Sahibi

Bu sefer de ekrana sadece 1 yazıyor. Ama dediğinizi anladım eşit olduğunda looptan çıktığı için if'i zaten hiçbir zaman okumuyormuş. Teşekkür ederim.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Platinum IV
S
9 yıl (11138 mesaj)
Yarbay

quote:

Orijinalden alıntı: tisuanzii

Bu sefer de ekrana sadece 1 yazıyor. Ama dediğinizi anladım eşit olduğunda looptan çıktığı için if'i zaten hiçbir zaman okumuyormuş. Teşekkür ederim.

Ben de çok hatırlamıyorum da "fibonacci in c" diye aratırsanız bir sürü örnek verir google'da.



F
9 yıl (30570 mesaj)
Yarbay

Kod uzmanı arkadaşı çağırıyorum

@Lotus Expeditor




Bu mesajda bahsedilenler: @Lotus Expeditor
E
9 yıl (5890 mesaj)
Teğmen

Saat 10a kadar yapamazsan bakıp kodları atabilirim hocam şu an unuttum 2 sene oldu bakmayalı, programı indirip deneyip bulup sana atabilirim.



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
9 yıl (1608 mesaj)
Yüzbaşı
Konu Sahibi

Çok teşekkür ederim hocam. Eğer yapamazsam ben size gece pm atarım.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Erich Fromm
E
9 yıl (5890 mesaj)
Teğmen

quote:

Orijinalden alıntı: tisuanzii

Çok teşekkür ederim hocam. Eğer yapamazsam ben size gece pm atarım.

Tamamdır ben unutmamak için hatırlatıcı kuruyorum siz konuyu güncellerseniz (9.30 gibi) sevinirim. :) bilgisayar babamda olacak çünkü o saate kadar :(



< Bu ileti mini sürüm kullanılarak atıldı >

S
9 yıl (12659 mesaj)
Binbaşı

int main()

{

int n, first = 0, second = 1, next, c;



printf("Enter the number of terms\n");

scanf("%d",&n);



printf("First %d terms of Fibonacci series are :-\n",n);



for ( c = 0 ; c < n ; c++ )

{

if ( c <= 1 )

next = c;

else

{

next = first + second;

first = second;

second = next;

}

printf("%d\n",next);

}



return 0;

}



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
9 yıl (1608 mesaj)
Yüzbaşı
Konu Sahibi

Bu girilen indise kadar olan sayıları yazıyor hocam, yanlış anlamadıysam. Sorunu şimdi çözdüm zaten yine de teşekkür ederim.




Bu mesajda bahsedilenler: @I am Tony Montana
H
9 yıl (7540 mesaj)
Binbaşı

buda matrix exponentiation kullanarak O(log n) complexity ile n. fibonacciyi (mod 10^9+7)bulan kod
#include <cstdio>
#define MD 1000000007LL
typedef long long ll;
using namespace std;
typedef struct mtt{
ll a[2][2];
}mt;
ll n;

mt mut(mt a,mt b){
mt c={(a.a[0][0]*b.a[0][0]+a.a[0][1]*b.a[1][0])%MD,(a.a[0][0]*b.a[0][1]+a.a[0][1]*b.a[1][1])%MD,
(a.a[1][0]*b.a[0][0]+a.a[1][1]*b.a[1][0])%MD,(a.a[1][0]*b.a[1][0]+a.a[1][1]*b.a[1][1])%MD};
return c;
}

mt fp(mt a,ll k){
mt a1={1,0,0,1};
if(k==0)return a1;
mt cc=fp(a,k/2);
if(k%2)return mut(mut(cc,cc),a);
else return mut(cc,cc);
}

ll f(ll n){
mt a={1,1,1,0};
mt c=fp(a,n);
return c.a[0][0];

}

int main() {
scanf("%lld",&n);
n--;
printf("%lld
",f(n));
return 0;}





< Bu mesaj bu kişi tarafından değiştirildi hynx -- 3 Aralık 2017; 20:33:0 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.