Fonksiyon kullanmadan kare almak için genellikle çarpma yöntemini kullanmışızdır. Peki hiç çarpma yapmadan bilgisayar gibi toplayarak kare alma işlemini nasıl yapacağınızı hiç düşündünüz mü? Bu yazıda iki farklı yöntemle fonksiyon kullanmadan ve çarpma yapmadan kare alma işleminin nasıl yapıldığını göstereceğim.
Sayının karesi ne demek?
Bilinen bir kavram ama yine de bir örnekle açıklayalım. Bir sayının karesini almak için sayıyı kendisi ile çarparız. Yani 5 sayısının karesi 5*5=25 olmuş olur.
Bu kavramdan yola çıkarak aslında şunu da ifade edebiliriz.
52 = 5*5 = 5+5+5+5+5 =5 tane 5 sayısını toplama olmuş olur.
Sayının karesini almak için sayının kendisini kendi değeri kadar toplayacağız. Yukarıdaki örnekte 5 sayısı 5 sefer toplandı. 10 olmuş olsaydı 10 sefer toplanacaktı. Bu tanımdan yola çıkarak javascript örneğini yapalım.
1.Yöntem:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<input type="text" id="sayi"> <div id="goster"></div> <script> var sayiNesne=document.getElementById("sayi"); var gosterDiv=document.getElementById("goster"); sayiNesne.oninput=function(){ //aktif olan nesne yani input#sayiNesne nesnesini seçmek için var sayi=Number(sayiNesne.value); var sonuc=0;//toplamanın etkisiz değeri 0 for(var i=0;i<sayi;i++) { sonuc+=sayi; } gosterDiv.innerHTML=sonuc; } </script> |
2.Yöntem: Bu yöntem daha hızlı sonuç almak için kullanılabilir. bir kare hesaplamak için aslında sonuçları katlayarak toplayabiliriz. Örn: 4 karesi için 4+4 =8 sonra 8+8 =16 gibi iki adımda yaptırmak mümkün. Bu kısımda dikkat edilecek nokta ise sayı tek ise kendisini son kısımda toplam dahil etmek.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<input type="text" id="sayi"> <div id="goster"></div> <script> var sayiNesne=document.getElementById("sayi"); var gosterDiv=document.getElementById("goster"); sayiNesne.oninput=function(){ //aktif olan nesne yani input#sayiNesne nesnesini seçmek için var sayi=Number(sayiNesne.value); var sonuc=0,tekil=1,aratoplam=sayi; while (sayi >= tekil) { if ((sayi & tekil) == tekil) { sonuc += aratoplam; } aratoplam += aratoplam; tekil += tekil; } gosterDiv.innerHTML=sonuc; } </script> |