ෆිබොනාච්චි අංක ප්‍රතිලෝම අනුපිළිවෙලින් මුද්‍රණය කරන්න


දුෂ්කරතා මට්ටම පහසු
නිතර අසනු ලැබේ ඇක්සෙන්චර් MAQ o9 විසඳුම් UHG Optum
ගතික වැඩසටහන්කරණය අනුපිළිවෙල

ගැටළු ප්රකාශය

N අංකයක් ලබා දී, ෆයිබොනාච්චි සංඛ්‍යා ප්‍රතිලෝම අනුපිළිවෙලින් මුද්‍රණය කරන්න.

උදාහරණයක්

n = 5
3 2 1 1 0

පැහැදිලි කිරීම: ඔවුන්ගේ ඇණවුමට අනුව ෆිබොනාච්චි අංක 0, 1, 1, 2, 3 වේ. නමුත් අපට ප්‍රතිලෝම අනුපිළිවෙලින් මුද්‍රණය කිරීමට අවශ්‍ය වූ බැවින්.

n = 7
8 5 3 2 1 1 0

ෆිබොනාච්චි අංක ප්‍රතිලෝම අනුපිළිවෙලින් මුද්‍රණය කරන්න

අවසාන ෆයිබොනාච්චි අංක 2 හි ප්‍රති result ලය මත ෆිබොනාච්චි සංඛ්‍යා රඳා පවතින්නේ කෙසේද යන්න රූපයෙන් දැක්වේ.

ඇල්ගොරිතම

  1. ආදානය ගන්න, මුද්‍රණය කළ යුතු මූලද්‍රව්‍ය ගණන.
  2. දී ඇති ආදානයේ ප්‍රමාණයට වඩා විශාල ප්‍රමාණයක් ප්‍රකාශ කරන්න.
  3. 0 සහ 1 අරා දර්ශකය 0 සහ 1 සමඟ ආරම්භ කරන්න.
  4. I හි අගය එකින් එක වැඩි කරන අතර i හි අගය n ට වඩා අඩු වන තෙක් අපි i = 2 සිට ලූපයක් ධාවනය කිරීමට පටන් ගනිමු.
    1. අන්තිම දර්ශක මූලද්‍රව්‍යය සහ අන්තිම සිට අවසාන දර්ශක මූලද්‍රව්‍යය එකතු කිරීම දිගටම ගබඩා කරන්න.
  5. දැන් මෙම අරාව ප්‍රතිලෝම අනුපිළිවෙලින් මුද්‍රණය කරන්න.

ප්රවේශය

ෆිබොනාච්චි අංක මුද්‍රණය කිරීම සඳහා බොළඳ ප්‍රවේශයක් සෑම විටම තිබේ පුනරාවර්තනය. පුනරාවර්තනය ගැන අපට පැවසූ සෑම අවස්ථාවකම, සාමාන්‍යයෙන් අපට මුලින්ම කියනුයේ ෆිබොනාච්චි සංඛ්‍යා ය. එබැවින්, පුනරාවර්තනය භාවිතා කිරීමෙන් අපට ෆිබොනාච්චි අංක සොයාගත හැකිය. ඉන්පසු ඒවා ප්‍රතිලෝම අනුපිළිවෙලින් මුද්‍රණය කරන්න. නමුත් මෙය සිදු කිරීම සඳහා අධික ගණනය කිරීමක් අවශ්‍ය වේ, එබැවින් එසේ කිරීම වෙනුවට විකල්ප ප්‍රවේශයක් ගැන අප සිතිය යුතුය.

විකල්ප ප්‍රවේශය නම් ගතික වැඩසටහන්කරණය, ගැටලුව විසඳීමේදී බොහෝ විට අවශ්‍ය දත්ත අපි ගබඩා කරමු. ෆයිබොනාච්චි අංක භාවිතා කිරීම පිළිබඳව ද අපි සාකච්ඡා කර ඇත්තෙමු ගතික වැඩසටහන්කරණය පෙර දී තැපැල්.

කේතය

ප්‍රතිලෝම අනුපිළිවෙලින් ෆයිබොනාච්චි අංක මුද්‍රණය කිරීමට සී ++ කේතය

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n;cin>>n;
    int fib[n];
    if(n>=1)
    fib[0] = 0;
    if(n>=2)
    fib[1] = 1;
    for(int i=2;i<n;i++)
        fib[i] = fib[i-1] + fib[i-2];
    for(int i=n-1;i>=0;i--)
        cout<<fib[i]<<" ";
}
4
2 1 1 0

ප්‍රතිලෝම අනුපිළිවෙලින් ෆයිබොනාච්චි අංක මුද්‍රණය කිරීමට ජාවා කේතය

import java.util.*;
class Main{
  
  public static void main(String[] args)
  {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    	int fib[] = new int[n];
    	if(n>=0)
    		fib[0] = 0;
    	if(n>=1)
    		fib[1] = 1;
    	for(int i=2;i<n;i++)
    		fib[i] = fib[i-1] + fib[i-2];
    	for(int i=n-1;i>=0;i--)
    		System.out.print(fib[i]+" ");
  	}
}
4
2 1 1 0

සංකීර්ණ විශ්ලේෂණය

කාල සංකීර්ණත්වය

O (N), ෆයිබොනාච්චි සංඛ්‍යා ගණනය කිරීමට මෙම කාලය අවශ්‍ය වේ. මොකද අපි ෆයිබොනාච්චි අනුක්‍රමය සොයා ගැනීමට තනි පුඩුවක් ධාවනය කරනවා. කාල සංකීර්ණතාව රේඛීය වේ.

අභ්‍යවකාශ සංකීර්ණතාව

O (N), අපි ෆයිබොනාච්චි අංකවල අගයන් ගබඩා කිරීම සඳහා අරාවක් භාවිතා කර ඇති නිසා, අවකාශයේ සංකීර්ණතාව රේඛීය වේ.