C ++中的Kaprekar数
在本教程中,我们将编写一个程序来查找给定的数字是否为kaprekar数字。
取一个数字。找到该数字的平方。将数字分为两部分。如果两个部分的总和等于原始数字,则该数字称为kaprekar数字。
让我们看看解决问题的步骤。
初始化n。
找出n的平方。
在n的平方中找到位数,并将其存储在变量中。
将n的平方除以10、100、1000等,直到数字计数。
检查任何这些部分的总和是否等于n。
如果它们相等,则返回True,否则返回False。
示例
让我们看一下代码。
#includeusing 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; }
输出结果
如果运行上面的代码,则将得到以下结果。
False
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短