trang chủ / bài tập / cowbasic

Ngôn Ngữ COWBASIC

Đề bài

Mô tả

Bạn được cho một chương trình viết bằng ngôn ngữ lập trình đơn giản COWBASIC. Hãy thực thi chương trình và in ra giá trị của biến được trả về. Tất cả phép tính đều thực hiện theo modulo 109+7.

Ngôn ngữ COWBASIC có các cấu trúc sau:

Gán biến:

<tên_biến> = <biểu_thức>

Vòng lặp MOO (lặp đúng n lần):

n MOO {
  <các câu lệnh>
}

Trả về kết quả (luôn là câu lệnh cuối cùng):

RETURN <tên_biến>

Biểu thức có thể là:

  • Một số nguyên dương (literal) 105
  • Một tên biến (chuỗi chữ thường, độ dài 10)
  • Tổng hai biểu thức: ( <biểu_thức> ) + ( <biểu_thức> )

Biến chưa được khởi tạo có giá trị 0. Biến chỉ được sử dụng sau khi đã được định nghĩa.

Dữ liệu vào

Một chương trình COWBASIC gồm tối đa 100 dòng, mỗi dòng tối đa 350 ký tự.

Dữ liệu ra

Một số nguyên duy nhất — giá trị trả về của chương trình theo modulo 109+7.

Ràng buộc

  • Số dòng 100
  • Mỗi dòng 350 ký tự
  • Số vòng lặp (literal trong MOO) 105
  • Tên biến gồm tối đa 10 chữ cái thường
  • Các vòng lặp có thể lồng nhau tùy ý

Ví dụ

Input Output Giải thích
x = 1
10 MOO {
  x = ( x ) + ( x )
}
RETURN x
1024 Biến x được nhân đôi 10 lần: 1×210=1024.
n = 1
nsq = 1
100000 MOO {
100000 MOO {
nsq = ( nsq ) + ( ( n ) + ( ( n ) + ( 1 ) ) )
n = ( n ) + ( 1 )
}
}
RETURN nsq
4761 Vòng lặp lồng nhau tính (105×105+1)2mod(109+7)=4761.

Ghi chú

Vì số lần lặp có thể rất lớn (lên đến 105) và các vòng lặp có thể lồng nhau nhiều cấp, cần sử dụng thuật toán hiệu quả — không thể mô phỏng trực tiếp.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0