Trong hướng dẫn này, chúng ta sẽ viết một chương trình để tìm xem số đã cho có phải là số kaprekar hay không hoặc không.
Lấy một số. Tìm bình phương của số đó. Chia số thành hai phần. Nếu tổng của hai phần bằng số ban đầu, thì số đó được gọi là số kaprekar .
Hãy xem các bước để giải quyết vấn đề.
- Khởi tạo n.
- Tìm bình phương của n.
- Tìm số chữ số trong bình phương của n và lưu nó trong một biến.
- Chia bình phương của n với 10, 100, 1000, v.v., cho đến khi đếm được các chữ số.
- Kiểm tra xem tổng của bất kỳ phần nào trong số đó có bằng n hay không.
- Trả về Đúng nếu chúng bằng nhau thì Sai .
Ví dụ
Hãy xem mã.
#include<bits/stdc++.h> using namespace std; bool isKaprekarNumber(int n) { if (n == 1) { return true; } int nSquare = n * n, digitsCount = 0; while (nSquare) { digitsCount++; nSquare /= 10; } nSquare = n * n; for (int i = 1; i < digitsCount; i++) { int parts = pow(10, i); if (parts == n) { continue; } int sum = nSquare / parts + nSquare % parts; if (sum == n) { return true; } } return false; } int main() { int n = 25; string result = isKaprekarNumber(n) ? "True" : "False"; cout << result << endl; return 0; }
Đầu ra
Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.
False
Kết luận
Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.