1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tập c hãy kiểm tra số nguyên dương n có phải là số đối xứng hay không

3 4,1K 10

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 19,52 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

Bài 59: Hãy kiểm tra số nguyên dương n có phải là số đối xứng hay không

#include<stdio.h>

#include<conio.h>

#include<math.h>

/*

Kiểm tra số đối xứng

Định nghĩa : Số đối xứng là số đọc từ trái qua phải hay từ phải qua trái đều ra kết quả như nhau

VD: ban đâu có số abcdef

=> số đảo ngược là fedcba

nếu 2 số đó bằng nhau => đối xứng

Vd : số 123 => đảo ngược là 321

số 12345 => đảo ngược là 54321

123 % 10 = 3 => ok

123 / 10 = 12

12 % 10 = 2 => ok

12 / 10 = 1

1 % 10 = 1 => ok

1 / 10 = 0 = > end

321 = 3*10^2 + 2*10^1 + 1*10^0

54321 = 5*10^4 + 4*10^3 + 3*10^2 + 2*10^1 + 1*10^0

=> start = 10^(số chữ số - 1)

=> end = 10^0

Ý tưởng: Tách ra từng chữ số và lấy chữ số đó bắt đầu nhân cho 10^(x) với x là số chữ số - 1 và qua mỗi lần thì x sẽ liên tục giảm 1 đơn vị

Cách 2: số 123 ta tách thành các chữ số 3,2,1

0 * 10 + 3 = 3

Trang 2

3 * 10 + 2 = 32

32 * 10 + 1 = 321

*/

int main()

{

int n;

// Nhập n ( n > 0 )

do

{

printf("\nNhap vao n ( n > 0 ): ");

scanf_s("%d", &n);

if (n <= 0)

{

printf("\nGia tri ban nhap vao khong hop le Xin vui

long nhap lai! ");

}

} while (n <= 0);

int SoChuSo = (int)log10((float)n) + 1;

int SoNghichDao = 0;

int themang = n;

printf("\nSo %d co phai la so doi xung hay khong ?\n", n);

while (themang != 0)

{

int ChuSo = themang % 10; // Lấy chữ số ra themang /= 10; // Bỏ chữ số vừa lấy ra SoNghichDao += ChuSo * pow(10.0, SoChuSo);

}

/*while(themang != 0)

Trang 3

SoNghichDao = SoNghichDao * 10 + themang % 10; themang /= 10;

}*/

if(SoNghichDao == n)

{

printf("Dung !");

}

else

{

printf("Sai !");

}

getch();

return 0;

}

Ngày đăng: 19/10/2016, 00:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w