Cách tính số tự mãn bằng code c++

0
Số tự mãn
Số tự mãn

Bài toán: Cường mới được học về số tự mãn (Narcissistic Number) là số mà tổng của từng chữ số mũ k bằng chính nó (k là số chữ số của số đã cho). Thầy giáo giao bài tập cho Cường kiểm tra các số đã cho liệu có phải là số tự mãn hay không. Hãy giúp Cường hoàn thành bài tập được giao.

  •  Dữ liệu vào: Dòng duy nhất gồm 1 số nguyên n (0 < n < 106 )
  •  Dữ liệu ra: Kiểm tra liệu n có phải là số tự mãn hay không. Nếu là số tự mãn, in ra “YES”, ngược lại in ra “NO”.

Ví dụ :

  • Input
  • Output
  • Input
  • Output

Ý tưởng kiểm tra số tự mãn

Số tự mãn là số số mà tổng của từng chữ số mũ k bằng chính nó ( k là số chữ số của số nguyên đang xét). Ví dụ 153 = 13 + 53 + 33

nên 153 là số tự mãn.

Từ đây ta có hướng làm như sau

  • Đầu tiên cần đếm số lượng chữ số của số nguyên đang xét.
  • Ta cần tách các chữ số của số nguyên ra
  • Dùng biến sum để cộng lần lượt các chữ số n với n là các chữ số của số nguyên đang xét
  • Ta so sánh sum với số ban đầu nếu bằng nhau thì số đang xét chính là số tự mãn..
  • Để đơn giản và không dùng mảng để lưu các chữ số thì ta thực hiện bước 2 và bước 3 song song với nhau.

Ta cần viết các hàm sau để giải quyết bài toán trên

  • Hàm đếm số lượng chữ số. Nếu bạn chưa biết cách đếm số lượng các chữ số của số nguyên thì có thể xem tại đây.
  • Hàm lũy thừa, cái này thì cũng khá dễ.
  • Hàm check() trả về true nếu là số tự mãn và ngược lại sẽ trả về false.

Code kiểm tra số tự mãn bằng c++

Bài viết mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !

avatar
  Subscribe  
Notify of