0.Tiền giấy và Tiền xu


Submit solution

Points: 2 (partial)
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Đọc một giá trị thực với hai chữ số thập phân. Đây là số tiền cần phải trả. Sau đó, tính số đồng tiền ít nhất phải dùng để trả số tiền này. Các tờ tiền giấy có mệnh giá 100, 50, 20, 10, 5, 2 R$. Các đồng tiền có mệnh giá 1, 0,50, 0,25, 0,10, 0,05 và 0,01 R$. In thông báo "Tiền giấy" theo sau danh sách tiền giấy và thông báo "Tiền xu" theo sau bởi danh sách đồng xu.

Đầu vào

Tệp đầu vào chứa một giá trị thực N (0 ≤ N ≤ 1000000.00).

Đầu ra

In số lượng tối thiểu của tiền giấy và đồng xu cần thiết để đạt giá trị đã cho, như ví dụ được đưa ra.

VÍ DỤ 1

INPUT 1

576.73

OUTPUT 1

Tien giay:

5 to R$ 100.00

1 to R$ 50.00

1 to R$ 20.00

0 to R$ 10.00

1 to R$ 5.00

0 to R$ 2.00

Tien xu:

1 dong xu R$ 1.00

1 dong xu R$ 0.50

0 dong xu R$ 0.25

2 dong xu R$ 0.10

0 dong xu R$ 0.05

3 dong xu R$ 0.01

VÍ DỤ 2

INPUT 2

4.00

OUTPUT2

Tien giay:

0 to R$ 100.00

0 to R$ 50.00

0 to R$ 20.00

0 to R$ 10.00

0 to R$ 5.00

2 to R$ 2.00

Tien xu:

0 dong xu R$ 1.00

0 dong xu R$ 0.50

0 dong xu R$ 0.25

0 dong xu R$ 0.10

0 dong xu R$ 0.05

0 dong xu R$ 0.01

VÍ DỤ 3

INPUT 3

91.01

OUTPUT 3

Tien giay:

0 to R$ 100.00

1 to R$ 50.00

2 to R$ 20.00

0 to R$ 10.00

0 to R$ 5.00

0 to R$ 2.00

Tien xu:

1 dong xu R$ 1.00

0 dong xu R$ 0.50

0 dong xu R$ 0.25

0 dong xu R$ 0.10

0 dong xu R$ 0.05

1 dong xu R$ 0.01


Comments


  • 1
    manh_ĐTVT5_K60  commented on Oct. 4, 2020, 9:04 a.m. edited
    #include<iostream>
    using namespace std;
    int main()
    {
        float x; cin >> x;
        int a[] = { 100,50,20,10,5,2 };
        int a1[6];
        float b[] = { 1,0.5,0.25,0.1,0.05,0.01 };
        int a2[6];
        int x1 = (int)x;
        float x2 = x - x1;
        for (int i = 0; i < 6; i++)
        {
            a1[i] = x1/a[i];
            x1 %= a[i];     
        }
         x2 += x1;
         for (int i = 0; i < 6; i++)
         {
             a2[i] = x2 / b[i];
             x2 -= b[i] * a2[i];
         }
         cout << "Tien giay:\n";
         for (int i = 0; i < 6; i++)
         {
             cout << a1[i] << " to R$ " << a[i] << ".00"<<endl;
         }
         cout << "Tien xu:\n";
         for (int i = 0; i < 6; i++)
         {
             printf("%d dong xu R$ %0.2f\n", a2[i], b[i]);
         }
        return 0;
    }

    đúng có 5 case, buồn quá =))


    • 1
      minyoongi  commented on Oct. 8, 2020, 5:31 a.m.

      mình sửa lại code c rồi mà vẫn chỉ đúng có 7 test


    • -1
      minyoongi  commented on Oct. 8, 2020, 5:31 a.m.

      include<iostream>

      using namespace std; int main() { double x; cin >> x; int a[] = { 100,50,20,10,5,2 }; int a1[6]; double b[] = { 1,0.5,0.25,0.1,0.05,0.01 }; int a2[6]; int x1 = (int)x; double x2 = x - x1; for (int i = 0; i < 6; i++) { a1[i] = x1/a[i]; x1=x1%a[i];
      } x2 += x1; for (int i = 0; i < 6; i++) { a2[i] = x2 / b[i]; x2 -= b[i] * a2[i]; } cout << "Tien giay:\n"; for (int i = 0; i < 6; i++) { printf("%d to R$ %d.00\n",a1[i],a[i]); } cout << "Tien xu:\n"; for (int i = 0; i < 6; i++) { printf("%d dong xu R$ %0.2lf\n", a2[i], b[i]); } return 0; }


  • -6
    khanh041506  commented on Nov. 7, 2017, 4:49 a.m. edited

    This comment is hidden due to too much negative feedback. Show it anyway.