202.快楽数-力ボタン(c++)


タイトル:
アルゴリズムを作成して、1つの数が「快楽数」であるかどうかを判断します.
「快楽数」は、正の整数に対して、その数を各位置の数値の二乗和に置き換えるたびに、この数が1になるまで繰り返し、無限ループである可能性がありますが、常に1にならないまで繰り返します.1に変えることができれば、この数が快楽数です.
サンプル: : 19 : true : 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1 
考え方:
水の問題ですが、カラーペンは私のように、実行時もメモリ消費量も高い恐怖があります.まだアップグレードする必要がありますが、考え方自体は簡単です.入力した整数を個別の整数に分割し、問題によって与えられたnをすべての個別の整数の平方和に割り当て、1かどうかを判定します.はい、trueを返します.いいえ、nが最終的に1に等しいまで、または10000回の強制終了サイクルがfalseに戻るまで、分割および付与の二乗を再開し、ループを行います.すなわち、nは非快楽数とみなされます.
 
 
マイコード:
class Solution { public:     bool isHappy(int n) {     int a[10000];     int con=0;     if(n==1)     {         return true;     }       while(n!=1)     {         con++;         int i=0;         while(n!=0)        {            a[i]=n%10;            n=n/10;            i++;        }        for(int j=0;j        {             n=n+a[j]*a[j];        }        if(n==1)        {              return true;           break;        }         if(con>10000)         {             break;             return false;         }     }         return 0;     } };