C++程序 在给定范围内检查和打印Neon数
Neon数是一个数字,其中数字的平方的各位数字之和等于数字本身。任务是检查并打印范围内的Neon数。
示例:
输入: 9
输出: Neon Number
解释: 平方为9 * 9 = 81,平方的各位数字之和为9。
输入: 12
输出: 不是Neon数
解释: 平方为12 * 12 = 144,平方的各位数字之和为9(1 + 4 + 4),不等于12。
实现很简单,我们首先计算给定数字的平方,然后找到平方中数字的和。
// C++ program to check and print
// Neon Numbers upto 10000
#include <iostream>
using namespace std;
#include <math.h>
int checkNeon(int x)
{
// Storing the square of x
int sq = x * x;
// Calculating the sum of
// digits of sq
int sum_digits = 0;
while (sq != 0)
{
sum_digits = sum_digits + sq % 10;
sq = sq / 10;
}
return (sum_digits == x);
}
// Driver Code
int main(void)
{
// Printing Neon Numbers upto 10000
for (int i = 1; i <= 10000; i++)
if (checkNeon(i))
cout << i << " ";
}
输出:
1 9
时间复杂度: O(n * log 10 (n * n)),其中n是要打印Neon数的数字。
空间复杂度: O(1),因为没有使用额外的空间。