给定一个正整数,请你判断这个数是不是快乐数。
快乐数:对于一个正整数,每次把他替换为他每个位置上的数字的平方和,如果这个数能变为 1 则是快乐数,如果不可能变成 1 则不是快乐数。
例如:正整数 19
转换过程为 1*1+9*9=82 , 8*8+2*2=68,6*6+8*8=100,1*1+0*0+0*0=1 ,所以他是快乐数。
数据范围:输入的正整数满足
19
true
111
false
bool happynum(int n ) { int a[10]; while (1) { int count = 0; bool yes = false; for (int i = 0; i < 10; i++) { a[i] = n % 10; if (a[i] == 0) count++; if (a[i] == 1) yes = true; n = n / 10; } if (count == 9) { if (yes) return true; else return false; } n = 0; for (int i = 0; i < 10; i++) { n += a[i] * a[i]; } } }