Bài tập  /  Bài đang cần trả lời

Bạn hãy xác định Vasya làm được bao nhiêu con thuyền từ tờ giấy, giải bằng C++

BÀI 5: Một ngày rỗi rãi, Vasya ngồi gấp thuyền từ một tờ giấy hình chữ nhật a mm × b mm (a > b). Thông thường bước đầu tiên là tạo một mảnh giấy hình vuông từ tờ giấy hình chữ nhật bằng cách gấp tờ giấy theo đường phân giác của góc vuông và cắt phần dư thừa.

<!--[if gte vml 1]> <!--[endif]-->

Sau khi làm xong một con thuyền giấy từ mảnh giấy vuông, Vasya nhìn vào phần còn lại (a - b) mm × b mm của tờ giấy. Anh ta có ý tưởng sử dụng mảnh giấy này theo cùng một cách để làm một con thuyền giấy nữa và sau đó lại sử dụng phần mảnh giấy còn lại (nếu có) và cứ tiếp tục như vậy. Tại thời điểm khi anh ta còn lại với mảnh giấy hình vuông, anh ta sẽ làm con thuyền cuối cùng từ nó và dừng lại.

Bạn hãy xác định Vasya làm được bao nhiêu con thuyền từ tờ giấy.

giải bt c++ ngắn nhất
 
1 Xem trả lời
Hỏi chi tiết
19
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để xác định số lượng con thuyền Vasya có thể làm từ một tờ giấy hình chữ nhật có kích thước a mm × b mm (với a > b), chúng ta có thể thực hiện một vòng lặp để tiếp tục cắt bớt phần giấy theo chiều dài và chiều rộng cho tới khi không còn mảnh giấy nào để làm thuyền nữa.

Dưới đây là chương trình C++ ngắn gọn để thực hiện điều này:

```cpp
#include
using namespace std;

int main() {
int a, b;
cin >> a >> b; // Nhập kích thước tờ giấy

int count = 0; // Số lượng thuyền
while (a >= b) {
count += a / b; // Gấp bột thuyền từ giấy hình chữ nhật
a = a - (a / b) * b; // Cắt bớt phần giấy đã sử dụng
swap(a, b); // Đổi giá trị của a và b
}

cout << count << endl; // In ra số lượng thuyền
return 0;
}
```

### Giải thích chương trình:
1. **Nhập kích thước tờ giấy**: Chúng ta sử dụng `cin` để nhập giá trị `a` và `b`.
2. **Đếm số con thuyền**: Sử dụng một biến `count` để lưu trữ số lượng thuyền đã làm.
3. **Vòng lặp `while`**: Tiến hành cắt bớt phần giấy và tính toán số lượng thuyền mà Vasya có thể làm cho tới khi chiều dài `a` nhỏ hơn chiều rộng `b`.
4. **Thay đổi kích thước**: Sau mỗi lần lặp, `a` sẽ được cập nhật sau khi đã cắt đi phần giấy đã sử dụng. Và giá trị của `a` và `b` sẽ được hoán đổi để tiếp tục cắt bớt đúng cách.
5. **In kết quả**: Cuối cùng, in ra số lượng con thuyền mà Vasya đã làm được.

Chương trình này đảm bảo tính chính xác và thực hiện đơn giản cho bài toán đã đưa ra.
1
0
Little wolf
hôm qua
+5đ tặng
#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    
    int count = 0;
    
    // Đảm bảo a luôn lớn hơn b
    if (a < b) swap(a, b);
    
    // Lặp cho đến khi không còn giấy
    while (a >= b) {
        count += a / b;  // Tính số vuông có thể cắt từ chiều dài a
        a = a % b;  // Cập nhật lại kích thước chiều dài còn lại
        swap(a, b);  // Đổi a và b để tiếp tục với chiều dài nhỏ hơn
    }
    
    cout << count << endl;
    
    return 0;
}
 

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×