Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Bài toán quy đổi tiền bất kỳ ! Sao không chạy được quay lui !

  1. #1
    Ngày gia nhập
    02 2011
    Bài viết
    5

    Mặc định Bài toán quy đổi tiền bất kỳ ! Sao không chạy được quay lui !

    Bài toán yêu cầu là nhập đơn vị tiền cơ bản (VD : 100,200,500) và một số tiền cho trước VD : 3500 ! hãy phân tích số tiền đã cho ra các tờ tiền đơn vị ) ! Đây là bài toán có dạng :donvitien[1]*sotien[1]+ donvitien[2]*sotien[2]+...+donvitien[n]*sotien[n]=tong !
    Ý tưởng là dùng thuật toàn quay lui đệ quy để tìm tất cả các trường hợp có thế ! Với mảng donvitien[max] mà mảng chứa các đơn vị tiền và sotien[i] là số tờ tiền của mỗi donvitien[i] !
    Đây là code :

    C Code:
    1. #include <conio.h>
    2. #include <stdlib.h>
    3. #include <stdio.h>
    4. #define max 100
    5.  
    6. int donvitien[max],sotien[max];
    7. int tong,j,n;
    8. void Init(){
    9.      for(int i=0;i<max;i++)
    10.      sotien[i]=0;
    11.      
    12.      }
    13. void PrintResult(){
    14.      for(int i=0;i<n;i++)
    15.      printf("%4d",sotien[i]);
    16.      printf("\n");
    17.      }    
    18. void exchange(int i,int s){
    19.      int j;
    20.      for(j=0;j<= (tong-s)/donvitien[i];j++){
    21.                  sotien[i]=j;
    22.                  s+= donvitien[i]*sotien[i];                        
    23.                                  
    24.                  if(s==tong) PrintResult();
    25.                      if(i>=n-1) {}
    26.                      else exchange(i+1,s);
    27.                      
    28.                    
    29.                  }
    30.      
    31.      
    32.      }
    33. main()
    34. {    
    35.       printf("\n Nhap so luong tien: ");
    36.       scanf("%d",&n);
    37.       for(int i=0;i<n;i++){
    38.               printf("Nhap loai don vi tien thu %d : ",i);
    39.               scanf("%d",&donvitien[i]);
    40.               }
    41.       printf("Nhap so tien muon phan tich :");
    42.       scanf("%d",&tong);              
    43.       exchange(0,0);
    44.       getch();        
    45.      
    46.       }

  2. #2
    Ngày gia nhập
    02 2011
    Bài viết
    5

    Up phát xem bạn nào biết cách tìm lỗi không !!

  3. #3
    Ngày gia nhập
    09 2009
    Bài viết
    42

    Không biết bạn đang đố mọi người hay là bạn nhờ giúp đỡ nữa. Nếu bạn nhờ giúp thì hy vọng code dưới đây sẽ giúp được bạn:
    Vấn đề của bạn là ở hàm exchange, mình viết lại thế này:
    Code:
    void exchange(int i,int s,int &b){
         int j,t,l=(tong-s)/donvitien[i],temp=s;
         for(j=0;j<=l;j++)
         {
    	 if(b)
    	 {
    	     s=temp;
    	     b=0; // LAT NGUOC TRANG THAI
    	 }
    	 sotien[i]=j;
    	 t= donvitien[i]*sotien[i];
    	 s+=t;
    	 if(s==tong)
    	 {
    	     PrintResult();
    	     b=1; // LAT NGUOC TRANG THAI
    	 }
    	 else if(i<n-1)
    	 {
    	     exchange(i+1,s,b);
    	 }
    	 else if(j<l) s-= t;
    	 else b=1; // LAT NGUOC TRANG THAI
         }
    }
    Gọi nó trong hàm main là: exchange(0,0,0);
    Mình thấy hàm Init() bạn không gọi trong hàm main kìa, hàm này dùng hay không dùng cũng như nhau thôi
    Hình như bạn cũng là thành viên của itf đúng không? Sao không post bài lên đó hỏi?
    Đã được chỉnh sửa lần cuối bởi HONG REU : 03-11-2011 lúc 01:30 PM.

Các đề tài tương tự

  1. Chèn phụ đề chất lượng cao quay nhanh
    Gửi bởi hachphong69 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 02-10-2012, 02:20 PM
  2. Máy Quay HD Sony, máy quay sony Handycam, máy quay kỹ thuật số, máy quay phim mới tinh Mo
    Gửi bởi dientuthaithang trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 472
    Bài viết cuối: 03-08-2012, 05:16 PM
  3. Đồ chơi công nghệ thế kỷ 21:Bút quay,đồng hồ quay,móc quay,máy nghe lén qua sim
    Gửi bởi bigphonevn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 06-08-2011, 10:47 PM
  4. Thiết bị thám tử: Bút quay,đồng hồ quay,móc quay,máy nghe lén qua sim
    Gửi bởi bigphonevn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 17-07-2011, 08:23 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn