Fibonacci नम्बरहरू उल्टो क्रममा प्रिन्ट गर्नुहोस्


कठिनाई तह सजिलो
बारम्बार सोधिन्छ एक्सेंचर MAQ o9 समाधानहरू UHG Optum
डायनामिक प्रोग्रामिंग अनुक्रम

समस्या वक्तव्य

एउटा नम्बर एन दिइयो, फिबोनैकी नम्बरहरू उल्टो क्रममा प्रिन्ट गर्नुहोस्।

उदाहरणका

n = 5
3 2 1 1 0

स्पष्टीकरण: फिबोनैसी अंकहरू ०, १, १, २, their उनीहरूको अर्डरको अनुसार छन्। तर हामीलाई उल्टो क्रममा प्रिन्ट गर्न आवश्यक पर्‍यो।

n = 7
8 5 3 2 1 1 0

Fibonacci नम्बरहरू उल्टो क्रममा प्रिन्ट गर्नुहोस्

फिगरले कसरी फिबोनैचि नम्बरहरू अन्तिम २ फिबोनैकी नम्बरहरूको नतीजामा निर्भर छन् भनेर जनाउँदछ।

अल्गोरिदम

  1. इनपुट लिनुहोस्, प्रिन्ट गरिने तत्त्वहरूको संख्या।
  2. दिइएको इनपुटको रूपमा आकारको एरे घोषणा गर्नुहोस्।
  3. ० र १ सँग एर्रे इन्डेक्स ० र १ सुरू गर्नुहोस्।
  4. हामी i = २ बाट लुप चलाउन थाल्छौं, i को मान n भन्दा कम नभएसम्म i को मान एक गरी बढाउँदै।
    1. अन्तिम अनुक्रमणिका तत्त्वको थप भण्डार गर्न जारी राख्नुहोस् र अन्तिमदेखि अन्तिम अनुक्रमणिका एलिमेन्ट गर्नुहोस्।
  5. अब यो एर्रे उल्टो क्रममा प्रिन्ट गर्नुहोस्।

दृष्टिकोण

फिबोनाची नम्बरहरू प्रिन्ट गर्न एउटा भोली दृष्टिकोण सँधै आएको छ पुनरावृत्ति। र जहिले पनि हामीलाई रिकर्सनको बारेमा बताइन्छ, पहिलो चीज हामीलाई सामान्य रूपमा भनिन्छ फिबोनाची नम्बरहरू हुन्। त्यसोभए, रिकर्सन प्रयोग गरेर हामी फिबोनैचि नम्बरहरू फेला पार्न सक्दछौं। र त्यसोभए केवल तिनीहरूलाई उल्टो क्रममा प्रिन्ट गर्नुहोस्। तर यो गर्न भारी गणना आवश्यक छ, त्यसैले त्यसो गर्नुको सट्टा हामीले वैकल्पिक दृष्टिकोणको बारेमा सोच्न आवश्यक छ।

वैकल्पिक दृष्टिकोण हो गतिशील प्रोग्रामिंगजहाँ हामी डाटा भण्डार गर्दछौं जुन समस्या समाधानको लागि प्राय: आवश्यक पर्दछ। हामीले प्रयोग गरेर फिबोनैकी नम्बरहरू फेला पार्न पनि छलफल गर्‍यौं गतिशील प्रोग्रामिंग अघिल्लोमा पोस्ट.

कोड

उल्टो क्रममा फिबोनैसी नम्बरहरू प्रिन्ट गर्न C ++ कोड

#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), किनकि हामीले फिबोनैकी नम्बरहरूको मान भण्डार गर्न एर्रे प्रयोग गरेका छौं, स्पेस जटिलता रैखिक छ।