• Source
    1. #include<bits/stdc++.h>
    2.  
    3. using namespace std;
    4. long long nways[30005];
    5.  
    6. int coins[15]= {5,10,20,50,100,200,500,1000,2000,5000,10000};
    7.  
    8. void init()
    9. {
    10. for(int i=0; i<11; i++)
    11. {
    12. for(int j=coins[i],k=0; j<=30005; j++,k++)
    13. {
    14. nways[j]+=nways[k];
    15. }
    16. }
    17. }
    18. int main()
    19. {
    20. int dollar,cents;
    21. long long cvt,ways;
    22. nways[0]=1;
    23. init();
    24. while(scanf("%d.%d",&dollar,&cents)==2)
    25. {
    26. if(dollar==0 && cents==0)
    27. {
    28. break;
    29. }
    30. cvt = dollar*100+cents;
    31.  
    32. ways = nways[cvt];
    33.  
    34. if(cents==0)
    35. {
    36. printf("%3d.00",dollar);
    37. }
    38. else if(cents<10)
    39. {
    40. printf("%3d.0%d",dollar,cents);
    41. }
    42. else
    43. {
    44. printf("%3d.%2d",dollar,cents);
    45. }
    46.  
    47. printf("%17lld\n",ways);
    48.  
    49. }
    50. return 0;
    51. }
    52.