Giúp bài tập Java

Tấm vé may mắn

Hôm nay Linh tới trường bằng xe buýt. Mỗi hành khách khi lên xe buýt sẽ được phát một tấm vé có mã số trong khoảng từ 1 đến 109. Các tấm vé được phát lần lượt cho hành khách theo thứ tự lên xe với mã số liên tiếp nhau bắt đầu từ một mã số nào đó.

Tấm vé may mắn là tấm vé có mã số hoặc gồm một chữ số hoặc gồm nhiều chữ số giống hệt nhau. Tấm vé Linh được phát có mã số là N. Linh nhận ra rằng trước cô ấy đã có M hành khách lên xe. Linh tò mò muốn biết trên xe buýt hiện tại có bao nhiêu hành khách có tấm vé may mắn. Hãy giúp cô ấy!

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên cách nhau bởi dấu cách N,M(0 ≤ M < N ≤ 109), trong đó N là mã số tấm vé mà Linh nhận được, và M là số lượng hành khách lên xe trước Linh.

Kết quả

Trong một dòng duy nhất hãy ghi ra số lượng hành khách có tấm vé may mắn.

Có ví dụ mẫu không bạn? vì câu này hơi tối nghĩa, nếu mình hiểu đúng thì nó có nghĩa là số may mắn là số chỉ gồm 1 loại chữ số. tức là nó có dạng xx…xx với x = [0 … 9]
Nếu thật sự là như vậy thì bài này đơn giản, còn không thì phải có bộ dữ liệu ví dụ đề bài thì mới biết được.

1 Like

đây ạ

        for (int i = 0; i < 10; i++)
	    num[i] = 0;
	res = 0;
	m = n - m;
        //thử sinh các số may mắn có i chữ số
	for (int i = 1; i < 10; i++)
            //số may mắn đó chỉ gồm chữ số j
            for (int j = 1; j < 10; j++){
                num[j] = num[j] * 10 + j;
                if (num[j] >= m && num[j] < n)
                    res++;
            }

ý tưởng:

  • số may mắn có dạng xx.xx và x thuộc [1…9] (vì vé bắt đầu từ 1 nên không có số 0)
  • vé lớn nhất là 10^9 vậy thì vé may mắn có tối đa 9 chữ số -> lặp vòng lặp i, xem nó là số chữ số của số may mắn
  • tạo ra số may mắn, kiểm tra xem nó có nằm trong đoạn [n-m, n] hay không

bác viết cả code cho e được không ạ? e mới học :frowning:

phần còn lại chỉ là khai báo + nhập xuất thôi mà

num là mảng 10 phần tử thôi

em hoàn thành rồi ạ! E cảm ơn bác nhiều ạ!!

cái bài này không cho thêm dữ kiện nếu khách có vé đã xuống xe thì sao mà tính được nhỉ?

Đã hoàn thành

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?