最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

html - Fibonacci Series with JavaScript - Stack Overflow

programmeradmin1浏览0评论

var var1 = 0;
var var2 = 1;
var var3;

var num = 20;

document.write(var1 + "<br />");
document.write(var2 + "<br />");

for (var i = 3; i <= num; i++) {
  var3 = var1 + var2;
  var1 = var2;
  var2 = var3;

  document.write(var3 + "<br />");
}

var var1 = 0;
var var2 = 1;
var var3;

var num = 20;

document.write(var1 + "<br />");
document.write(var2 + "<br />");

for (var i = 3; i <= num; i++) {
  var3 = var1 + var2;
  var1 = var2;
  var2 = var3;

  document.write(var3 + "<br />");
}

Best, I'm doing a Fibonacci Series, but I want to see a message with prompt es up, so you can fill in a number, then the returns with the Fibonacci Series. Who would be able to help me? Above I have now.

Share Improve this question edited May 10, 2020 at 15:41 Penny Liu 17.6k5 gold badges86 silver badges108 bronze badges asked Apr 7, 2014 at 10:16 GigiGigi 91 gold badge1 silver badge2 bronze badges 3
  • 1 stackoverflow./questions/7944239/… – Dhaval Marthak Commented Apr 7, 2014 at 10:18
  • What number should the user fill in? And what should be returned, do you have some examples of input/output? – David Thomas Commented Apr 7, 2014 at 10:18
  • Does this answer your question? Generating Fibonacci Sequence – Matej J Commented Jun 23, 2020 at 7:06
Add a ment  | 

10 Answers 10

Reset to default 3

I have created demo, hope it will help you.

var i;
var fib = [0, 1];
var limit = window.prompt('Enter the limit for your series:', '');
for (i = 2; i < parseInt(limit); i++) {
    fib[i] = fib[i - 2] + fib[i - 1];
}
console.log(fib);

Demo Link

function myFunction() {
    var n = document.getElementById("myNumber").value;
    document.getElementById("demo").innerHTML = fibonacciGenerator (n);
}

var sequence = [0]; // sequence = []; if you want sequence [1] = 1;
var previousNumber = 1;
var presentNumber = 0;
var sum = 0;
 
function fibonacciGenerator (n) {
  
    while (sequence.length < n) {
     sum = previousNumber + presentNumber;
     previousNumber = presentNumber;
     presentNumber = sum;
     sequence.push(sum);
     
    }
    return (sequence);
}
<!DOCTYPE html>
<html>
<body>

<h1>Fibonacci Generator </h1>

<input type="number" id="myNumber" value="0">

<p>Enter a number to generate Fibonacci array.</p>

<button onclick="myFunction()">Try it</button>


<p id="demo"></p>


</body>
</html>

Using ES6 generator

function* fiboGen(len, current = 0, next = 1) {
      if (len === 0) {
        return current;
      }
      yield current;
      yield* fiboGen(len - 1, next, current + next);
    }
    
    const fibo = [...fiboGen(10)];
    
    console.log(fibo);
//[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

you need to use a prompt box to get the number:

window.prompt("sometext","defaultText");

http://www.w3schools./js/js_popup.asp

I hope that this is what you are looking for.

HTML:

Which sequence of the Fibonacci pattern do you want to find?
<br><br>
<input type="text" id="inputtext">
<br><br>
<input type="button" value="Find out" id="btn">
<br><br>
<b id="ID"></b>

JS:

    function add(a, b) {
    while (a.length < b.length) a.unshift(0);
    while (a.length > b.length) b.unshift(0);
    var carry = 0,
        sum = [];
    for (var i = a.length - 1; i >= 0; i--) {
        var s = a[i] + b[i] + carry;
        if (s >= 10) {
            s = s - 10;
            carry = 1;
        } else {
            carry = 0;
        }
        sum.unshift(s);
    }
    if (carry) sum.unshift(carry);
    return sum;
}

function fib(n) {
    var f1 = [0];
    var f2 = [1];

    while (n--) {
        var f3 = add(f1, f2);
        f1 = f2;
        f2 = f3;
    }
    return f1.join("");
}

document.getElementById("btn").onclick = function () {
        var inputnum = parseFloat(document.getElementById("inputtext").value);
        document.getElementById("ID").innerHTML = fib(inputnum).toString();
};

Fiddle.

var number = prompt("Enter number ");

....... your code ....

You can do the following:

    var var1 = 0;
    var var2 = 1;
    var var3;
    var num = window.prompt("Enter the limit for your series:","");
    //var num = 20;
    var str = '';
    str+=var1+','+var2;

    for(var i=3; i <= parseInt(num);i++)
    {
        var3 = var1 + var2;
        var1 = var2;
        var2 = var3;
        str+=','+var3;
    }
    document.write(str);
<!doctype html>
<html lang="en">
 <head>
 <body>

 <script type="text/javascript">
 var f1=0,f2=1,f3;
 var i;
alert("enter a text"+n);
 var n=prompt("enter the number");
 document.write("the fibonacci series is "+"<br/>");

   for(i=2;i<=n;i++)
   {

       f3=f1+f2;
       f1=f2;
       f2=f3;
     document.write(f3+"<br/>");   
   }
   </script>
   <style>

  body {background-color:#66ff66}
 </style>

 </head>
 </body>

i came up with this solution to get the n index Fibonacci value. you can use the findFac0(); to pass the index you need to get the Fibonacci value.

function findFac(n){
if (n===1) 
  {
   return [0, 1];
  } 
  else 
  {
    var s = findFac(n - 1);
    s.push(s[s.length - 1] + s[s.length - 2]);
    return s;
  }
}

function findFac0(n){
var vv1 = findFac(n);
return vv1[n-1];
}


console.log(findFac0(10));

I've tried this: it might work:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fibonacci</title>
    <style>
        * {
            outline: 0px;
            margin: 0px;
        }

        input[type="number"] {
            color: blue;
            border: 2px solid black;
            width: 99.58vw;
        }
    </style>
</head>

<body>
    <div id="myDiv" style="color: white;background-color: blue;">Numbers Here</div>
    <input type="number" id="input1" oninput="fibonacciProgram(this.value)" placeholder="Type Some Numbers Here">
    <script>
        function fibonacciProgram(numberCount) {
            let resultElement = document.getElementById("myDiv");
            resultElement.innerHTML = " ";
            if (isNaN(numberCount) || numberCount <= 0) {
                resultElement.innerHTML = "please enter a number";
                return;
            }
            let firstBox = 0;
            let secondBox = 1;
            let swichBox;
            let entries = [];
            entries.push(secondBox);
            while (numberCount > 1) {
                swichBox = firstBox + secondBox;
                entries.push(swichBox);
                firstBox = secondBox;
                secondBox = swichBox;
                numberCount--;
            }
            resultElement.innerHTML = entries.join(', ');
        }
    </script>
</body>

</html>
发布评论

评论列表(0)

  1. 暂无评论