题意:如果经过题目中的循环能到达一,就是快乐数,否则,不是
题解:太菜了,看到数据范围是1e9;就慌的一批,其实,中规中矩的算,不过循环9次,应该是秒答的题
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
scanf("%d", &n);
int m = n;
while(m != 1 && m != 4){
int p = m;
int sum = 0;
while(p != 0){
sum += (p % 10) * (p % 10);
p /= 10;
}
m = sum;
//if(m == 4 || m == 16 || m == 37 || m == 58 || m == 89 || m == 145 || m == 42 || m == 20)break;
}
if(m == 1)printf("HAPPY\n");
else printf("UNHAPPY\n");
return 0;
}