30/09/2018, 22:34
Tổng các chữ số n
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,S,du;
printf("Nhap n:");
scanf("%d",&n);
while(n>0){
du=n%10;
n=n/10;
S=S+du;
}
printf("%d",S);
return 0;
}
tổng 1924 là 16 khi chạy thì nó đảo ngược thành 61
giúp mình in ra 16 với
Bài liên quan
Khởi tạo giá trị cho S
S=0
tks bạn nhé
http://codepad.org/E6N1KYQt bài này là liệt kê các số n, lúc chạy thì nó cũng đảo ngược luôn
Dĩ nhiên là nó đảo ngược rồi vì thuật của bạn là đọc số từ bên phải sang bên trái trong khi con người thường đọc số từ trái sang phải.
Để khắc phục điều này, bạn chỉ cần đảo ngược số n trước khi phân tích trong vòng while thôi
Thuật toán bạn làm luôn xuất hàng đơn vị ra trước nên ngược lại là đúng r( thường dùng để xác định số đối xứng )
Nếu muốn khắc phục thì:
+Có thể làm như bạn trên.
+Đệ quy :3
đảo ngược số n trước khi phân tích làm sao thế bạn?
Ví dụ nhé: Số 1234 khi đảo ngược lại phải là số 4321 không.
Mà
4321 = 4 * 1000 + 3 * 100 + 2 * 10 + 1 * 1 = 4 * 10^3 + 3 * 10^2 + 2 * 10^1 + 1 * 10^0
=> Rút ra được thuật toán để đảo ngược 1 số là:
…
=> SoDaoNguoc chính là số cần tìm