1.首先定义一个转换函数专门用来将各个位上的数平方之后再相加。
2.1肯定是快乐数,对于不是1的数持续用转换函数的条件是其值大于9,也就是说跳出循环的条件是m <= 9;
#include<stdbool.h>
int change(int x){   //自定义转化函数
    int sum = 0;
    while( x > 0){
        int j = x % 10;
        sum = sum + j*j;
        x = x / 10;
    }
    return sum;
}
bool happynum(int n ) {
   if(n == 1)
      return true;  //把1单独放一边
   int m = 0;
   while(n > 1){    //大于1的数就转换
       m = change(n);  //转换之后小于10的数就不继续转换了,直接收网判结
       while(m > 9)
       {  //只有大于9的数才需要继续转换,直到最后结果小于等于9才结束循环
           m = change(m);   //循环转换
       } 
       break;  //跳出转换的循环
   }
//开始判结
   if(m == 1)  
       return true;
    else 
       return false;
}