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:
- Cập nhật bài tập html - javascript trên lớp 05/11/2011
- [Thảo luận] Code sao cho tinh tế 02/01/2012
- [JAVA-XML]Hàm sửa đổi tệp XML bằng Java – (JDOM) 25/04/2011
- Lấy thông tin thời tiết tự động bằng Javascript 11/10/2010
- Cho mình hỏi về đoạn javascript này 16/11/2011
- Thành Phần Cú Pháp Trong Javascript 08/09/2009
- Bài tập về sắp sếp mảng trong JAVA 14/09/2011
- Một số bài tập Java Căn bản 27/10/2011
- [JAVA-XML] XMLTreeView - Hiển thị cây xml 25/04/2011
- Tập hợp những đoạn java script hay. [vẫn còn đang cập nhật ] 08/08/2009
+1 EXP






Trả Lời Với Trích Dẫn
interpol