判断是否为快乐数字的C语言算法(附完整源码)
快乐数字,是指将一个正整数的每个数字的平方进行相加运算,得到的和再重复以上运算,最终结果能够得到1的数。如果在此过程中得到了无限循环以外的任何数字,则该数就不是快乐数字。
下面我们使用C语言来实现判断一个数是否为快乐数字的算法。代码如下:
#include <stdio.h>
#include <stdbool.h>
bool is_happy(int num) {
int sum = 0;
int digit;
while (num > 0) {
digit = num % 10;
sum += digit * digit;
num /= 10;
}
if (sum == 1) {
return true;
} else if (sum == 4) {
return false;
} else {
return is_happy(sum);
}
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (is_happy(num)) {
printf("%d是快乐数字\n", num);
} else {
printf("%d不是快乐数字\n", num);
}
return 0;
}
首先,我们定义了一个 is_happy()
函数,用