Bài hoán vị n số đầu tiên C++

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi datlee, 2/4/10.

  1. datlee

    datlee Donkey Kong Lão Làng GVN

    Tham gia ngày:
    13/12/08
    Bài viết:
    415
    Nơi ở:
    Nothing Hill......
    Nội dung đề bài như sau : in ra tất cả hoán vị của n số đầu tiên, dùng pp đệ quy.
    Về hướng đi thì mình nghĩ như sau : đi từ số đầu tiên đến số cuối cùng, mỗi số ta gán sau nó hoán vị của n-1 số còn lại.
    Nhưng về trình bày qua C++ thì mình chưa làm ra cái hoanvi(n-1) còn lại.
    tạm thời demo cái của mình như sau, xuất ra dãy n số rồi :(
    À còn nữa, các bạn đừng đưa code ra luôn nha, chỉ cho mình cái dàn bài thôi. :d
    Cám ơn trước :D
    [spoil]#include <iostream.h>
    void hoanvi(int n);
    void main()
    {
    int n;
    cout<<"Nhap vao n: \n",cin>>n;
    hoanvi(n);
    }
    void hoanvi(int n)
    {
    int i;

    if(n==1)
    {
    cout<<1<<endl;
    return;
    }
    else
    {
    for(i=1;i<=n;i++)
    {
    cout<<i;


    }
    cout<<endl;


    }
    }
    [/spoil]
     
    Chỉnh sửa cuối: 2/4/10
  2. ngọa hổ

    ngọa hổ Youtube Master Race

    Tham gia ngày:
    4/10/09
    Bài viết:
    85
    Nơi ở:
    hoa quả sơn
    hơ, hoán vị có phải là n! không nhỉ, đây là bài tìm n! còn gì

    Mã:
    int giaithua(int n)
    {
    if(n != 1)
    return n*giaithua(n-1);
    else
    return n;
    }
     
  3. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Hoán vị đệ quy thì thế này
    Bước thứ i chọn phần tử thứ i
    phần tử thứ i là các phần từ chưa được cho vào hoán vị từ 1->i-1 ( dùng mảng đánh dấu )
    Đệ quy tiếp phần tử i+1.
    Nhớ gán mảng đánh dấu và trả lại đánh dấu sau khi đệ quy
     
  4. datlee

    datlee Donkey Kong Lão Làng GVN

    Tham gia ngày:
    13/12/08
    Bài viết:
    415
    Nơi ở:
    Nothing Hill......
    Sau 1 thời gian mò mẫm, mình cũng ra đc hoán vị, nhưng phải nhập 1 dãy vào rồi mới hoán vị dãy đó.


    Nhưng đề bài lại là nhập số n thôi.
    VD : bài của tớ phải nhập 1234 thì nó hoán vị chuỗi 1234.
    Nhưng đề là : nhập số 4, và ra hoán vị của 1234.
    Mình định nhập n, dùng dòng lập for để in ra chuỗi từ 1 đến n. Nhưng sau đó làm sau thì bí 8-}.
    Mong mọi người giúp đỡ :D.
     
  5. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Thay char a[max] bằng int a[max]
    Nhập n
    rồi dùng for i=1->n, a=i
    Thế là ra mảng giống thé
     

Chia sẻ trang này