C 程序 检查霓虹灯号码
给定一个数字(num),我们需要检查它是否是一个霓虹灯数字(即一个数字的平方数字之和等于该数字),并相应地返回 “true “或 “false”。
示例:
Input : num = 9
Output : true
解释一下。9的平方是9*。 9=81,平方数的数字之和为8+1=9(即等于给定的数字)。
Input : num = 10
Output : false
解释一下。10的平方是10*。 10=100,平方数的数字之和为1+0+0=1(即不等于给定的数字)。
步骤
其基本思路是首先计算数字的平方,然后通过计算平方的位数之和,我们可以检查给定的数字是否是霓虹灯号码。
算法
- 首先,我们需要找到给定数字的平方。
- 然后我们需要用一个循环来提取该数字的平方数。
- 然后我们需要计算数字的总和。
- 最后,我们需要检查与给定数字的总和,结果将是。
- “true”,如果总和等于给定的数字,或
- ” false ” ,如果总和不等于给定的数字。
示例:
// C program to demonstrate whether
// a number is Neon number or not
#include <stdio.h>
int Check_Neon_Number(int num) {
// Calculating the square of the number
int square = num * num;
// Copying the square in a variable
// to extract the digit
int n = square;
// Declaring a variable to store the digits
int digit;
// Initializing a variable to
// calculate the sum of digits
int sum = 0;
// To calculate the sum of digits
while (n != 0) {
// Extracting the digit
digit = n % 10;
sum = sum + digit;
n = n / 10;
}
// Checking the condition of a Neon Number
if (sum == num)
return 1; // If condition is true.
else
return 0; // If condition is false.
}
// Driver Code
int main()
{
int num = 9;
// Calling the function
int ans = Check_Neon_Number(num);
if (ans == 1)
// The number is Neon
printf("true");
else
// The number is not Neon
printf("false");
return 0;
}
输出
true
时间复杂度: O(log n)
辅助空间: O(1) 因为不需要额外的空间,所以空间是恒定的