#include <bits/stdc++.h> using namespace std; bool isHappy(int n) { vector<int> a; // 記錄各個位數平方後相加的數 while (n!=1){ a.push_back(n); // 將每個位數平方後相加的數加入陣列 int sum=0; while(n>0){ // 將每個位數平方後相加 int digit=n%10; // 取出最後一位數 sum+=digit*digit; // 將每個位數平方後相加 n/=10; // 將最後一位數刪除 } n=sum; for (int i=0;i<a.size();i++){ // 判斷是否已經重複 if(a[i]==n){ // 已經重複 return false; } } } return true; } int main(){ int n; while(cin>>n){ // 輸入數字 bool b=isHappy(n); // 判斷是否為幸運數 if(b==true){ cout<<n<<" is a happy number"<<endl; } else{ cout<<n<<" is an unhappy number"<<endl; } } }
#include using namespace std; bool isHappy(int n) { vector<int> a; // 記錄各個位數平方後相加的數 while (n!=1){ a.push_back(n); // 將每個位數平方後相加的數加入陣列 int sum=0; while(n>0){ // 將每個位數平方後相加 int digit=n%10; // 取出最後一位數 sum+=digit*digit; // 將每個位數平方後相加 n/=10; // 將最後一位數刪除 } n=sum; for (int i=0;i// 判斷是否已經重複 if(a[i]==n){ // 已經重複 return false; } } } return true; } int main(){ int n; while(cin>>n){ // 輸入數字 bool b=isHappy(n); // 判斷是否為幸運數 if(b==true){ cout<" is a happy number"<<endl; } else{ cout<" is an unhappy number"<<endl; } } }