Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Bài tập "Tính tích, thương, lấy dư"

  1. #1
    Ngày gia nhập
    12 2007
    Nơi ở
    Mình đang sống tại Đà Nẵng
    Bài viết
    5

    Unhappy Bài tập "Tính tích, thương, lấy dư"

    Đề bài:
    Nhập vào hai số a,b tính tích, thương, lấy dư của 2 số đó mà không được dùng các phép *,/,% chỉ được dùng phép cộng và trừ.
    Mình suy nghĩ bài này mấy hôm rồi mà vẫn bế tắc, các bạn hướng dẫn dùm mình thuật toán để giải bài này với.
    Luôn học hỏi là cách để tự hoàn thiện bản thân.

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Bài này dùng các toán tử xor, or ( & ^ ..) đã từng được thảo luận 1 lần, check dưới nick của lão Huynguyen sẽ tìm ra ngay. Lâu quá rùi nên tui cũng chẳng còn nhớ gì T_T!

  3. #3
    Ngày gia nhập
    03 2008
    Bài viết
    57

    Mình cũng có thể làm thủ công bằng các vòng lặp.
    + Với toán nhân. thì kq = a*b. thì ta sẽ lặp a lần. mỗi lần cho kq += b.
    bạn này cũng có thể làm giảm số lần lặp bằng cách tìm thằng bé nhất trong a , b để làm số lần lặp
    C++ Code:
    1. int kq = 0;
    2. for (int i=0; i<a; i++)
    3. {
    4.     kq += b;
    5. }
    6. cout << "a*b = " << kq <<endl;
    + Với toán chia. ta có nhận xét. ta thấy 18/6 = 3. bằng số lần 18 trừ cho 6 để có kết quả là 0. 18 - ( 6+6+6) = 18 -6 -6 -6 =0.
    18/5 = 3. dư 3. tức là : 18 - ( 5+5+5) = 18 -5-5-5 = 3 <5.
    Như vậy ta sẽ làm vòng lặp và lấy số bị chia trừ cho số chia cho đến khi kết quả thu được nhỏ hơn số chia hay bẳng 0. Khi đó số lần lặp sẽ là kết quả của phép chia ( phần nguyên) còn kết quả còn lại sau khi trừ sẽ là phần dư.
    C++ Code:
    1. int kq = a;
    2. for ( int i = 0; kq >= b; i++)
    3. {
    4.     kq -= b;
    5. }
    6. if ( kq != 0)
    7. {
    8.     cout << "a/b = " << i << " .du : " << kq << endl;
    9. }
    10. else
    11.     cout << "a/b = " << i <<endl;
    Đã được chỉnh sửa lần cuối bởi thanhluan07 : 30-03-2008 lúc 10:55 PM.

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    1

    chieuquan đã nói rồi, nakaru cứ học vòng lặp đi rồi suy nghĩ làm bài, chứ vòng lặp chưa xem mà đã lên đây hỏi sớm thế. Mấy bài đó cũng đơn giản thôi, lên đây nhờ mấy cao thủ nói huỵch toẹt ra hết thì còn gì hay hehe

Các đề tài tương tự

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Lỗi"error C2275: 'T' : illegal use of this type as an expression" khi dùng "list<T>::iterator it"
    Gửi bởi doicanhden trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 19-01-2012, 01:59 AM
  3. Trả lời: 1
    Bài viết cuối: 01-12-2011, 07:32 PM
  4. Trả lời: 4
    Bài viết cuối: 14-09-2011, 11:01 PM
  5. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn