11MUN - 11 mũ n

Xem dạng PDF

Gửi bài giải


Điểm: 3,00 (OI)
Giới hạn thời gian: 0.1s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, JavaScript, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Khi làm toán Tèo nhận thấy ~ 11^2 = 121, 111^2 = 12321, 1111^2 = 1234321,… ~

Nhưng khi có nhiều hơn 9 chữ số 1 thì quy luật sẽ thay đổi.

Cho số ~S~ = 111…11 (gồm n chữ số 1, trong hệ thập phân). Bạn hãy viết chương trình giúp Tèo tính ~ S^2 ~ nhé.

Input

Một dòng duy nhất ghi số n là số lượng chữ số 1 của ~S~. ~(1 \le n \le 1000000)~

Output

Số ~ s^2 ~

Sample

Input #1
2
Output #1
121

Problem source: apok


Bình luận

Please read the guidelines before commenting.



  • 0
    Maigv_2010  đã bình luận lúc 15, Tháng 5, 2026, 10:38

    import sys

    def solve(): # Đọc dữ liệu đầu vào và lọc lấy số n hợp lệ để tránh TypeError inputdata = sys.stdin.read().split() n = None for token in inputdata: if token.isdigit(): n = int(token) break

    if n is None:
        return
    
    total_len = 2 * n - 1
    
    # Sử dụng bytearray để cấp phát tĩnh bộ nhớ dạng chuỗi ký tự ở tầng mã máy C
    # 48 là mã ASCII của ký tự '0'
    result = bytearray(48 for _ in range(total_len))
    
    carry = 0
    
    # Tính toán trực tiếp giá trị từng cột theo quy luật đối xứng toán học O(N)
    # Duyệt ngược từ hàng đơn vị (phải) sang hàng cao nhất (trái)
    for i in range(total_len - 1, -1, -1):
        # Số lượng chữ số 1 giao nhau tại cột thứ i (tính từ trái sang)
        current_elements = (i + 1) if i < n else (total_len - i)
    
        total_sum = current_elements + carry
        result[i] = (total_sum % 10) + 48 # Ghi trực tiếp mã ASCII của chữ số
        carry = total_sum // 10
    
    # Nếu còn số dư ở hàng cao nhất ngoài cùng bên trái
    if carry > 0:
        sys.stdout.write(str(carry) + result.decode('ascii') + "\n")
    else:
        sys.stdout.write(result.decode('ascii') + "\n")
    

    if name == "main": solve()


  • 0
    tri_88  đã bình luận lúc 26, Tháng 7, 2023, 23:11 chỉnh sửa

    Admin ơi anh cho xem test sai đi ạ.


    • 3
      Hiếu Nguyễn  đã bình luận lúc 28, Tháng 7, 2023, 7:15 sửa 7

      Lời giải của em chỉ đúng với trường hợp số có ít hơn 10 chữ số 1 thôi.

      Bài này nên vẽ vài trường hợp lên giấy rồi tìm quy luật em ạ.

      Em cũng có thể viết code trâu, rồi sử dụng ý tưởng trình chấm nhé: https://vnoi.info/wiki/algo/skill/viet-trinh-cham.md