Tôi đang cố gắng kiểm tra xem một số đã cho là cuberoot hay không trong VBA.
Mã sau chỉ hoạt động cho 2 và 3 là câu trả lời, nó không hoạt động sau đó.
Tôi đang cố gắng tìm ra điều gì sai trong mã.Kiểm tra xem một số có số nguyên là số nguyên khối
Sub cuberoot()
Dim n As Long, p As Long, x As Long, y As Long
x = InputBox("x= ")
If Iscube(x) Then
MsgBox ("Is cube")
Else
MsgBox ("No cube")
End If
End Sub
Private Function Iscube(a As Long) As Boolean
b = a^(1/3)
If b = Int(b) Then
Iscube = True
Else
Iscube = False
End If
End Function
Nếu tôi nhập '125', là khối lập phương của' 5', tôi nhận được câu trả lời chính xác 'Có phải khối lập phương' ngay cả khi bạn đang nói rằng nó chỉ hoạt động cho' 2' và '3'. Tôi nghĩ bạn nên làm rõ đầu vào là gì, đầu ra bạn mong đợi và đầu ra bạn nhận được để chúng tôi hiểu ý bạn là gì. Nếu không, tôi chỉ có thể nói rằng _given mô tả của bạn, mã của bạn sẽ hoạt động tốt. –
@MatteoNNZ mà không có kích thước b miễn là mã trên không thành công cho tôi vì int (b) trả về 4. – brettdj
@Apurva Tôi hy vọng bạn đã tìm thấy câu trả lời cho câu hỏi của bạn. Nếu vậy, thông thường ở đây để chấp nhận câu trả lời cung cấp giải pháp tốt nhất cho vấn đề của bạn. Bạn có thể đọc thêm về điều đó [ở đây] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). – stucharo