23 lines
		
	
	
		
			654 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			654 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# -*- coding: utf-8 -*-
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 100 coins must sum to $5.00
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								from pyswip.prolog import Prolog
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def main():
							 | 
						||
| 
								 | 
							
								    prolog = Prolog()
							 | 
						||
| 
								 | 
							
								    prolog.consult("coins.pl")
							 | 
						||
| 
								 | 
							
								    count = int(raw_input("How many coins (default: 100)? ") or 100)
							 | 
						||
| 
								 | 
							
								    total = int(raw_input("What should be the total (default: 500)? ") or 500)
							 | 
						||
| 
								 | 
							
								    for i, soln in enumerate(prolog.query("coins(S, %d, %d)." % (count,total))):
							 | 
						||
| 
								 | 
							
								        # [1,5,10,50,100]
							 | 
						||
| 
								 | 
							
								        S = zip(soln["S"], [1, 5, 10, 50, 100])
							 | 
						||
| 
								 | 
							
								        print i,
							 | 
						||
| 
								 | 
							
								        for c, v in S:
							 | 
						||
| 
								 | 
							
								            print "%dx%d" % (c,v),
							 | 
						||
| 
								 | 
							
								        print
							 | 
						||
| 
								 | 
							
								    list(prolog.query("coins(S, %d, %d)." % (count,total)))
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								if __name__ == "__main__":
							 | 
						||
| 
								 | 
							
								    main()
							 |