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

Đề tài: Cần kiểm tra kết quả một bài tập trên SPOJ?

  1. #1
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    532

    Mặc định Cần kiểm tra kết quả một bài tập trên SPOJ?

    Đề là như vầy. Cho số n, tính có bao nhiêu số nhị phân phân biệt có n chữ số( số luôn luôn bắt đầu bằng chữ số '1')? Để viết ra tất cả các số trên cần có bao nhiêu chữ số '1'
    Ở đây mình cần các bạn kiểm tra kết quả của mình có chính xác không mà ren dính wrong anwser hùa:(
    Code:
    Input: dòng đầu chứa t là số câu hỏi (test case)
    t dòng tiếp theo mỗi dòng chứa số n <= 50
    Output: tương ứng với mỗi số n trên hãy in ra số số nhị phân và số lượng chữ số '1' cần có
    
    Đây là kết quả của mình
    Input:
    20
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    Output là:
    
    1 1
    2 3
    4 8
    8 20
    16 48
    32 112
    64 256
    128 576
    256 1280
    512 2816
    256 23089744183296
    512 47278999994368
    1024 96757023244288
    2048 197912092999680
    4096 404620279021568
    8192 826832744087552
    16384 1688849860263936
    32768 3448068464705536
    65536 7036874417766400
    131072 14355223812243456
    Mình không cần code, các bạn đừng post code lên đây. Mình chỉ cần kiểm tra kết quả trên đúng hay sai thôi. Kết quả mình lưu kiểu long long
    Câu hỏi gốc ở GOO - Game Of Ones
    Cám ơn trước!
    Đã được chỉnh sửa lần cuối bởi khoaph : 18-03-2021 lúc 04:13 PM.

  2. #2
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất đông người
    Bài viết
    599

    Dòng 10 tính ra 512, dòng 41 tính ra có 256. Sai rồi.
    -...- -.- .. .-.. .-.. - .... . -... . .- ... - .-.-.

  3. #3
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    532

    Trích dẫn Nguyên bản được gửi bởi Ada Xem bài viết
    Dòng 10 tính ra 512, dòng 41 tính ra có 256. Sai rồi.
    Phát hiện đáng giá! Cảm ơn bạn.
    Mình code sai chỗ nào vậy kà. Phải nghiên kíu đã.

    - - - Nội dung đã được cập nhật ngày 18-03-2021 lúc 07:59 PM - - -

    Mình đã quá chủ quan, mình đã nghĩ rằng không thể xảy ra lỗi ở chỗ đơn giản như vậy
    C++ Code:
    1. cout << (1 << (n - 1)) << " ";
    Sửa lại
    C++ Code:
    1. cout << (1l << (n - 1)) << " ";
    Cuối cùng đạt accepted

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