برنامه تشخیص عدد فیبوناچی — به زبان ساده
در این مطلب، روش نوشتن برنامهای که یک عدد را از ورودی دریافت میکند و تشخیص میدهد که عدد فیبوناچی است یا خیر، مورد بررسی قرار گرفته است.
برنامه تشخیص عدد فیبوناچی
فرض میشود که عدد n داده شده است. هدف، بررسی این است که آیا عدد مذکور فیبوناچی است یا خیر. اولین اعداد سری فیبوناچی عبارتند از:
۰، ۱، ۱، ۲، ۳، ۵، ۸، ۱۳، ۲۱، ۳۴، ۵۵، ۸۹، ۱۴۱، …
مثال
ورودی: ۸
خروجی: بله
ورودی: ۳۴
خروجی: بله
ورودی: ۴۱
خروجی: خیر
یک راهکار ساده برای حل این مساله، تولید اعداد فیبوناچی بزرگتر و مساوی n است. در ادامه، یک خصوصیت جالب از اعداد فیبوناچی بیان شده که برای بررسی اینکه آیا یک عدد فیبوناچی است یا خیر نیز قابل استفاده است. یک عدد فیبوناچی است اگر و تنها اگر (۵*n2 + 4) یا (۵*n2 – ۴) مربع کامل باشند. در ادامه، چگونگی پیادهسازی برنامه تشخیص عدد فیبوناچی در زبانهای برنامهنویسی گوناگون شامل ++C، «جاوا» (Java)، «پایتون» (Python)، «سیشارپ» (#C) و «پیاچپی» (PHP) با استفاده از روش مذکور، ارائه شده است.
برنامه تشخیص عدد فیبوناچی در ++C
// C++ program to check if x is a perfect square
#include <iostream>
#include <math.h>
using namespace std;
// A utility function that returns true if x is perfect square
bool isPerfectSquare(int x)
{
int s = sqrt(x);
return (s*s == x);
}
// Returns true if n is a Fibinacci Number, else false
bool isFibonacci(int n)
{
// n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
// is a perferct square
return isPerfectSquare(5*n*n + 4) ||
isPerfectSquare(5*n*n - 4);
}
// A utility function to test above functions
int main()
{
for (int i = 1; i <= 10; i++)
isFibonacci(i)? cout << i << " is a Fibonacci Number \n":
cout << i << " is a not Fibonacci Number \n" ;
return 0;
}
برنامه تشخیص عدد فیبوناچی در جاوا
// Java program to check if x is a perfect square
class GFG
{
// A utility method that returns true if x is perfect square
static boolean isPerfectSquare(int x)
{
int s = (int) Math.sqrt(x);
return (s*s == x);
}
// Returns true if n is a Fibonacci Number, else false
static boolean isFibonacci(int n)
{
// n is Fibonacci if one of 5*n*n + 4 or 5*n*n - 4 or both
// is a perfect square
return isPerfectSquare(5*n*n + 4) ||
isPerfectSquare(5*n*n - 4);
}
// Driver method
public static void main(String[] args)
{
for (int i = 1; i <= 10; i++)
System.out.println(isFibonacci(i) ? i + " is a Fibonacci Number" :
i + " is a not Fibonacci Number");
}
}
//This code is contributed by Nikita Tiwari
برنامه تشخیص عدد فیبوناچی در پایتون
# python program to check if x is a perfect square
import math
# A utility function that returns true if x is perfect square
def isPerfectSquare(x):
s = int(math.sqrt(x))
return s*s == x
# Returns true if n is a Fibinacci Number, else false
def isFibonacci(n):
# n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both
# is a perferct square
return isPerfectSquare(5*n*n + 4) or isPerfectSquare(5*n*n - 4)
# A utility function to test above functions
for i in range(1,11):
if (isFibonacci(i) == True):
print i,"is a Fibonacci Number"
else:
print i,"is a not Fibonacci Number "
برنامه تشخیص عدد فیبوناچی در #C
// C# program to check if
// x is a perfect square
using System;
class GFG {
// A utility function that returns
// true if x is perfect square
static bool isPerfectSquare(int x)
{
int s = (int)Math.Sqrt(x);
return (s * s == x);
}
// Returns true if n is a
// Fibonacci Number, else false
static bool isFibonacci(int n)
{
// n is Fibonacci if one of
// ۵*n*n + 4 or 5*n*n - 4 or
// both are a perfect square
return isPerfectSquare(5 * n * n + 4) ||
isPerfectSquare(5 * n * n - 4);
}
// Driver method
public static void Main()
{
for (int i = 1; i <= 10; i++)
Console.WriteLine(isFibonacci(i) ? i +
" is a Fibonacci Number" : i +
" is a not Fibonacci Number");
}
}
// This code is contributed by Sam007
برنامه تشخیص عدد فیبوناچی در PHP
<?php
// PHP program to check if
// x is a perfect square
// A utility function that
// returns true if x is
// perfect square
function isPerfectSquare($x)
{
$s = (int)(sqrt($x));
return ($s * $s == $x);
}
// Returns true if n is a
// Fibinacci Number, else false
function isFibonacci($n)
{
// n is Fibinacci if one of
// ۵*n*n + 4 or 5*n*n - 4 or
// both is a perferct square
return isPerfectSquare(5 * $n * $n + 4) ||
isPerfectSquare(5 * $n * $n - 4);
}
// Driver Code
for ($i = 1; $i <= 10; $i++)
if(isFibonacci($i))
echo "$i is a Fibonacci Number \n";
else
echo "$i is a not Fibonacci Number \n" ;
// This code is contributed by mits
?>
خروجی قطعه کدهای ارائه شده
۱ is a Fibonacci Number
۲ is a Fibonacci Number
۳ is a Fibonacci Number
۴ is a not Fibonacci Number
۵ is a Fibonacci Number
۶ is a not Fibonacci Number
۷ is a not Fibonacci Number
۸ is a Fibonacci Number
۹ is a not Fibonacci Number
۱۰ is a not Fibonacci Number
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش برنامهنویسی C++
- مجموعه آموزشهای ریاضیات
- یافتن دور همیلتونی با الگوریتم پس گرد — به زبان ساده
- الگوریتم بازی مار و پله همراه با کد — به زبان ساده
- حل مساله n وزیر با الگوریتم پسگرد (Backtracking) — به زبان ساده
مجموعه: برنامه نویسی, کد سرا, کدهای آماده, مهندسی کامپیوتر برچسب ها: ++C, Java, PHP, python, پایتون, پی اچ پی, تشخیص عدد فیبوناچی, جاوا, سری فیبوناچی, سی پلاس پلاس, سی شارپ, عدد فیبوناچی, فیبوناچی
۱ .برنامهای بنویسید که تا وقتی عدد وارد شده از عدد قبلی بزرگتر است از کاربر عدد بگیرد و به
محض وارد شدن عدد کوچکتر حاصل جمع و میانگین اعداد وارد شده از ابتدای شروع برنامه را در
خروجی نمایش میدهد.
۱ .برنامهای بنویسید که تا وقتی عدد وارد شده از عدد قبلی بزرگتر است از کاربر عدد بگیرد و به
محض وارد شدن عدد کوچکتر حاصل جمع و میانگین اعداد وارد شده از ابتدای شروع برنامه را در
خروجی نمایش میدهد.