Bài toán về đổi tiền

Thảo luận trong 'Thuật toán' bắt đầu bởi LieuKyThien, 21 Tháng bảy 2009.

  1. Offline

    LieuKyThien

    • Thành Viên Mới

    Số bài viết:
    79
    Đã được thích:
    49
    Điểm thành tích:
    0
    Yêu cầu bài toán: bạn muốn đổi 300000đ thành các tờ 20000, 10000, 5000, 2000, 1000. Hãy đưa ra các phương án có thể đổi được.
    Mã:
    #include<stdio.h>
    #include<conio.h>
    #define tien 300000
    void main()
    {
    	clrscr();
    	long i,j,k,l,m,dem=1;
    	printf("Quy tien co 300,000d. Cac phuong an co the la:\n");
    	for(i=0;i<=tien/20000;i++)
    	 for(j=0;j<=(tien-i*20000)/10000;j++)
    	  for(k=0;k<=(tien-i*20000-j*10000)/5000;k++)
    	   for(l=0;l<=(tien-i*20000-j*10000-k*5000)/2000;l++)
    	    for(m=0;m<=(tien-i*20000-j*10000-k*5000-l*2000)/1000;m++)
    		if((i*20000+j*10000+k*5000+l*2000+m*1000)==tien)
    		 {
    		  	   printf("\nPhuong an %ld: %ld to 20000, %ld to 10000, %ld to 5000, %ld to 2000, %ld to 1000",dem,i,j,k,l,m);
    			   dem++;
    		 }
    	printf("%ld",dem);
    	getch();
    }
    híc! làm xong thì các bạn đừng hoảng nha vì có rất rất nhiều phương án nên làm cho ta cảm giác bị lặp vô tận

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí