Gửi Thông Điệp Yêu Thương vanbinh_bt nhắn với all: thi sao rồi mấy đồ...[Mr]-Boom nhắn với All K4: Chúc mọi người có 1 kỳ thi thật tốt !!lặng lẽ yêu nhắn với nguyễn ngọc huy: chúc mi có một kỳ thi tốt nha. vẫn nhớ mingocthongcctm05f nhắn với QNGAI: hãy sát cánh bên nhau.....hi.......trinhvh91 nhắn với TM03B: TM03B đoàn kết đi chơi cuối khóa nghenNgười vô cảm nhắn với nguyenlu: Ai vậy? T vẫn bước đi trong yêu thương mà ^^381 nhắn với neyugn: mong rằng chúng ta sẽ đi đến cái đích cuối cùng !nguyenlu nhắn với Người vô cảm: Hãy bước đi trong sự yêu thươnglenguyen_alone nhắn với Young Bin: tại sao nhok lại iu bin chứ nhỉ???hp thành công nhá!!binhcaolinh nhắn với Đen Trần: Cố gắng học chăm chỉ nhé em! Gửi Thông Điệp Yêu Thương


BẢNG GIÁ QUẢNG CÁO TẠI DIỄN ĐÀN 2MIT.ORG 2012

Hiện kết quả từ 1 tới 1 của 1

Chủ đề: [Java]Thuật toán in ra tất cả các dãy nhị phân có độ dài n

  1. #1
    Tham gia ngày
    Sep 2009
    Bài gửi
    217
    Cảm ơn
    294
    Được cảm ơn 192/83 bài viết
    Blog Entries
    7
    3
    Advanced
     
     
    Số lần cộng|trừ: 0 lần

    Default [Java]Thuật toán in ra tất cả các dãy nhị phân có độ dài n

    Tinh thần thuật toán này là dùng vòng while để chạy đến khi dãy bit cuối cùng được in.
    Trong mỗi vòng lặp sẽ in ra dãy số, cho con trỏ i chạy từ n về 0 /*từ phải qua trái*/ nếu gặp bit 0 thì đổi về 1. và ngược lại. Thuật toán khá đơn giản, đã chạy thử thành công.
    Code:
    import java.util.Scanner;
    public class daybitn {
    
        public static void main(String[] arg)
        {
            System.out.print("moi nhap do dai day nhi phan");
            Scanner scn=new Scanner(System.in);
            int n=scn.nextInt(); 
            int a[]= new int[n]; // cấp phát động 
            int last=0;             // biến đánh dấu vị trí cuối, để kết thúc vòng lặp, đi từ 0 đến n.
            while(last<n)
            {
            //in ra dãy bit
            for(int i=0;i<n;i++)
            {
                System.out.print(a[i])
                
            }System.out.println();
              //nếu bit ở vị trí last chuyển thành 1 thì nhảy lên một bước.
                if(a[last]==1)
                    last+=1;
         /*vòng lặp duyệt qua dãy bit, nếu phần tử là 0 thì đổi thành 1 và kết thúc vòng lặp.
           ngược lại nếu là 1 thì nó sẽ đưa về 0 và vòng lặp sẽ xét tiếp phần tử tiếp theo.
           Thuật toán này làm theo đúng cách chúng ta duyệt các dãy bit bằng tay,
           bắt đầu với 000... và kết thúc bằng 111...*/
            for( int i=n-1;i>=0;i--)
            {
                if(a[i]==0)
                {
                    a[i]=1;
                    break;
                }
                else
                {
                    
                        a[i]=0;
                }
            }
            }
        }
        
        
    }

    --------------------------------------------------
    Xem các chủ đề cùng chuyên mục:


    +1 EXP

    010000000000110000000010001000110011001000
    000111111110001001100011000000001111111100
    100001111001000011111111100010001110000000
    010001111001000111001100111000001111110000
    100001111000001110000100011100001110000000
    100111111110011110010000011110001111111100
    001000000000000000100000010100010000000010
    011100101101100011101001101010110100111010


  2. Có tổng cộng 3 thành viên cảm ơn IME cho bài viết này

    interpol (11-09-2011), lyvinhr00m (11-09-2011), normal  (17-10-2011)

Thông tin về chủ đề này

Users Browsing this Thread

Hiện giờ đang có 1 người xem chủ đề này. (0 thành viên 1 khách)

     

Chủ đề giống nhau

  1. Hỏi đáp cho tớ xin mấy bài toán cao cấp 2 với- có bài giải nhé, thanks
    By [king]love in forum Khoa Khoa Học Máy Tính
    Trả lời: 0
    Bài mới gửi: 23-06-2011, 11:20 PM
  2. Lập trình Java Toàn Tập ....
    By ChIpKut3 in forum Java/Java Script
    Trả lời: 4
    Bài mới gửi: 09-06-2011, 11:45 PM
  3. Ai có bài tập về toán cao cấp không?
    By v.xxxx.son in forum Tổ Tự Nhiên
    Trả lời: 7
    Bài mới gửi: 09-04-2011, 12:36 PM
  4. Trả lời: 5
    Bài mới gửi: 19-11-2010, 10:38 PM

484
Lượt xem

Share