trợ giúp hàm tính tổng các chữ số của số nguyên dương

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

truonghd95

Thành viên mới
Tham gia
5/6/24
Bài viết
7
Được thích
0
Chào các bác, e đang tập tành học VBA đến bài tính tổng các số nguyên dương, e viết chương trình không hiểu sao n toàn cộng thêm 1 đơn vị,
Các bác check hộ e với ạ.
E cảm ơn các bác ạ
Public Function Tongchuso(N As Variant)
Dim tong, chiadu As Variant
tong = 0
Do While N > 0
chiadu = N Mod 10
N = N / 10
tong = tong + chiadu
Loop
Tongchuso = tong
End Function
 
Chào các bác, e đang tập tành học VBA đến bài tính tổng các số nguyên dương, e viết chương trình không hiểu sao n toàn cộng thêm 1 đơn vị,
Các bác check hộ e với ạ.
E cảm ơn các bác ạ
Public Function Tongchuso(N As Variant)
Dim tong, chiadu As Variant
tong = 0
Do While N > 0
chiadu = N Mod 10
N = N / 10
tong = tong + chiadu
Loop
Tongchuso = tong
End Function
Thử thay dòng: N = N / 10

bằng N = N \ 10

hoặc N = int( N / 10)
 
Thử thay dòng: N = N / 10

bằng N = N \ 10

hoặc N = int( N / 10)e cảm o

Em thấy N = int( N / 10) thì đúng đó anh.
123 sẽ cho ra kết quả 6
Thử thay dòng: N = N / 10

bằng N = N \ 10

hoặc N = int( N / 10)
cảm ơn các bác ạ, e làm như bác đã đúng r ạ, e đọc tài liệu thì toán tử "/" là chia lấy phần nguyên mà th này lại k đúng, bác có thể giải thích cho e được k ạ
 
.
a/ b => a chia b lấy hết.

a\b => a chia b lấy phần nguyên.
Không hẳn vậy.
Hầu hết các ngôn ngữ lập trình cũ đều phân biệt rõ số nguyên và số thập phân. Và vì vậy, chúng làm toán với số nguyên (integer, long) hiệu quả hơn số thập phân (single, double) nhiều (khá nhiều đối với máy tính cũ)
/ là con toán chia số thập phân. Tham số nó là số thập phân, Và kết quả là số thập phân. Không có gì quan trọng để nói.
\ là con toán chia số nguyên. Tham số nó là số nguyên. Và kết quả là số nguyên. Nếu bạn nạp sô thập phân làm tham, số này sẽ được ép kiểu thành số nguyên.
Nếu chỉ "chia lấy phần nguyên" thì 3.5 \ 2 = 1 (phần nguyên của 1.75 là 1)
Theo VBA thì 3.5 \ 2 = 2 (3.5 ép kiểu sang nguyên là 4).

1717594337668.png
 
Không hẳn vậy.
Hầu hết các ngôn ngữ lập trình cũ đều phân biệt rõ số nguyên và số thập phân. Và vì vậy, chúng làm toán với số nguyên (integer, long) hiệu quả hơn số thập phân (single, double) nhiều (khá nhiều đối với máy tính cũ)
/ là con toán chia số thập phân. Tham số nó là số thập phân, Và kết quả là số thập phân. Không có gì quan trọng để nói.
\ là con toán chia số nguyên. Tham số nó là số nguyên. Và kết quả là số nguyên. Nếu bạn nạp sô thập phân làm tham, số này sẽ được ép kiểu thành số nguyên.
Nếu chỉ "chia lấy phần nguyên" thì 3.5 \ 2 = 1 (phần nguyên của 1.75 là 1)
Theo VBA thì 3.5 \ 2 = 2 (3.5 ép kiểu sang nguyên là 4).

View attachment 301434
e cảm ơn bác nhiều ạ
 
Web KT
Back
Top Bottom