Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Treallagx

Help me ( ngôn ngữ lập trình c++)

Help me ( ngôn ngữ lập trình c++)

 

 

Câu 1. Tính số fibonaci thứ N. biết f(1)= 1; f(2) = 1; f(N)=f(N-2)+F(N-1)

Câu 2: Cho dãy a gồm m số nguyên (|ai| <=10), dãy b gồm n số nguyên (bị <=10). 2 dãy này đã được sắp xếp không giảm. Hãy in ra một dãy c có các phần tử gồm 2 dãy số trên cũng được sắp xếp không giảm.

Câu 3. Cho dãy số gồm có N phần tử. Hãy đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau. Nếu có nhiều phần tử lớn nhất và nhỏ nhất thì đổi chỗ phần tử lớn nhất có vị trí lớn nhất cho phần tử nhỏ nhất có vị trí nhỏ nhất chonhau.

Phía sau một cô gái
10 tháng 8 2023 lúc 8:52

Câu 1: Tính số fibonaci thứ N. biết f(1)= 1; f(2) = 1; f(N)=f(N-2)+F(N-1)

 

#include <iostream>

int fibonacci(int n) {

    if (n <= 2) {

        return 1;

    }

    int prev = 1;

    int current = 1;

    int fib;

    for (int i = 3; i <= n; i++) {

        fib = prev + current;

        prev = current;

        current = fib;

    }

    return fib;

}

int main() {

    int N;

    std::cin >> N;

    int result = fibonacci(N);

    std::cout << "Số Fibonacci thứ " << N << " là: " << result << std::endl;

    return 0;

}

Phía sau một cô gái
10 tháng 8 2023 lúc 9:00

Câu 2: Cho dãy a gồm m số nguyên (|ai| <=10), dãy b gồm n số nguyên (bị <=10). 2 dãy này đã được sắp xếp không giảm. Hãy in ra một dãy c có các phần tử gồm 2 dãy số trên cũng được sắp xếp không giảm.

 

#include <iostream>

#include <vector>

std::vector<int> mergeArrays(const std::vector<int>& a, const std::vector<int>& b) {

    std::vector<int> c;

    int i = 0; 

    int j = 0; 

    while (i < a.size() && j < b.size()) {

        if (a[i] <= b[j]) {

            c.push_back(a[i]);

            i++;

        } else {

            c.push_back(b[j]);

            j++;

        }

    }

    while (i < a.size()) {

        c.push_back(a[i]);

        i++;

    }

    while (j < b.size()) {

        c.push_back(b[j]);

        j++;

    }

    return c;

}

int main() {

    int m, n;

    std::cin >> m >> n;

    std::vector<int> a(m);

    std::vector<int> b(n);

    for (int i = 0; i < m; i++) {

        std::cin >> a[i];

    }

    for (int i = 0; i < n; i++) {

        std::cin >> b[i];

    }

    std::vector<int> c = mergeArrays(a, b);

    std::cout << "Dãy c sau khi sắp xếp không giảm là:" << std::endl;

    for (int i = 0; i < c.size(); i++) {

        std::cout << c[i] << " ";

    }

    std::cout << std::endl;

    return 0;

}

Phía sau một cô gái
10 tháng 8 2023 lúc 9:04

Câu 3: Cho dãy số gồm có N phần tử. Hãy đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau. Nếu có nhiều phần tử lớn nhất và nhỏ nhất thì đổi chỗ phần tử lớn nhất có vị trí lớn nhất cho phần tử nhỏ nhất có vị trí nhỏ nhất cho nhau.

 

#include <iostream>

#include <vector>

#include <algorithm>

void swapMinMax(std::vector<int>& arr) {

     int minIndex = std::min_element(arr.begin(), arr.end()) - arr.begin();

     int maxIndex = std::max_element(arr.begin(), arr.end()) - arr.begin();

     std::swap(arr[minIndex], arr[maxIndex]);

}

int main() {

     int N;

     std::cin >> N;

     std::vector<int> arr(N);

     for (int i = 0; i < N; i++) {

          std::cin >> arr[i];

     }

     swapMinMax(arr);

     std::cout << "Dãy số sau khi đổi vị trí của phần tử lớn nhất và nhỏ nhất cho nhau là:" << std::endl;

     for (int i = 0; i < N; i++) {

          std::cout << arr[i] << " ";

     }

     std::cout << std::endl;

     return 0;

}


Các câu hỏi tương tự
Treallagx
Xem chi tiết
LÊ THỊ MINH NGỌC
Xem chi tiết
Tran Trang
Xem chi tiết
erddedfrferf ffvf fd
Xem chi tiết
hoàng kim
Xem chi tiết
Đức Vượng
Xem chi tiết
QUANH
Xem chi tiết
anh vương
Xem chi tiết
Nguyễn Thái Phương Thảo
Xem chi tiết