编写一个计算程序
编写一个计算程序,对于任意输入一个金额(人民币),给出能组合出这个金额值的最佳可能,要求使用的货币个数最少。例如给出1.46元,将得到1元1个,1角4个,5分1个,1分1个。设定已知人民币的币值有:100元、50元、20元、10元、5元、1元、5角、1角、5分、1分。
#include <stdio.h> #include <math.h> int main( void ) { double yuan; if( scanf("%lf",&yuan) == 1 ) { unsigned fen = (unsigned)ceil(yuan*100); if( fen/10000 != 0 ) { printf( "100元%u个\n", fen/10000 ); fen %= 10000; } if( fen/5000 != 0 ) { printf( "50元%u个\n", fen/5000 ); fen %= 5000; } if( fen/2000 != 0 ) { printf( "20元%u个\n", fen/2000 ); fen %= 2000; } if( fen/1000 != 0 ) { printf( "10元%u个\n", fen/1000 ); fen %= 1000; } if( fen/500 != 0 ) { printf( "5元%u个\n", fen/500 ); fen %= 500; } if( fen/100 != 0 ) { printf( "1元%u个\n", fen/100 ); fen %= 100; } if( fen/50 != 0 ) { printf( "5角%u个\n", fen/50 ); fen %= 50; } if( fen/10 != 0 ) { printf( "1角%u个\n", fen/10 ); fen %= 10; } if( fen/5 != 0 ) { printf( "5分%u个\n", fen/5 ); fen %= 5; } if( fen != 0 ) { printf( "1分%u个\n", fen ); } } }