H24

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.

PG
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;

}

Bình luận (0)
PG
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;

}

Bình luận (0)
PG
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;

}

Bình luận (0)

Các câu hỏi tương tự
H24
Xem chi tiết
LN
Xem chi tiết
TT
Xem chi tiết
EF
Xem chi tiết
HK
Xem chi tiết
DV
Xem chi tiết
H24
Xem chi tiết
AV
Xem chi tiết
NT
Xem chi tiết