problem şu:
bir sayı var ve derdim o sayıdan büyük en küçük 2 kuvvet değerini bulmak.
mesela 7 için 8 i bulmak. 23 için 32 yi. tabi esas problem bu kadar küçük sayılarda değil, büyük sayılarda bulmak.
var mı önerisi olan?

kağıt üzerinde bir formül mü yaratmaya çalışıyorsun? yoksa bir program mı yazmak istiyosun, bunun sonucunu veren ?


oyle bisi olmaz
mesela yedi icin en yakin iki sayi 7 ve 7 olur
epsulon falan hikayesi
acikcasi ne sordugunu da anlamadik


@onakomabunako: program :) tercihen kestirmeden bişey. yani çarp&kontrol et, çarp& kontrol et dışında bişey var mı, cevabını bulmak istediğim soru bu aslında.
@evrenos: baştan açıklayayım o zaman. elinde bir sayı var ve o sayıya en yakın ama ondan büyük 2^n değerini arıyorsun. ne yaparsın? yani mesela 7 için 8 i arıyorsun, kesinlikle 4 veya 16 yı değil.


2^n i arıyoruz, n = ceil(log2(x))
ceil o sayıya eşit ya da daha büyük en yakın tam sayıyı veren fonksiyon.
edit: örneğin: 23 için:
www.wolframalpha.com


matlab için;
%girilen bir sayı için en yakın 2'nin kuvvetini verir.
n = 0;
x = input('2''den büyük pozitif bir sayı girin:');
c = x;
while x>=2;
x = floor(x/2);
n = n+1;
end
if abs(2^n - c) > abs(2^(n+1) - c)
n = n+1;
end
sonuc = 2^n
edit: Benimki en yakın sayıyı veriyor. talemon'un yaptığı doğru.
