c + +循环快乐数cs101.1x

时间:2018-06-21 17:37:28

标签: c++

实践编程作业(PPA 03)

快乐数字:如果重复此过程,则对数字的平方进行平方,直到获得值1,该数字称为快乐数字。例如。您需要执行以下操作来执行此检查:(a)计算其数字的平方和(b)如果结果值为1,则该数字为一个幸福数,否则执行点(a)。如果一个数字不是一个快乐的数字,则此执行将无休止的循环/循环。 任务:在此编程任务中,您需要编写代码,该代码仅在10个循环(迭代)中检查该数字是否是一个快乐数字。下面给出了2个幸福数字示例(限于10个周期):

您需要执行以下操作: 找出数字位数的平方和。 检查从点1获得的结果。如果为1,则将值1分配给变量“ finalNumber”,否则再次执行点1,直到获得的数字为1或直到循环数增加为10。 将迭代值分配给变量“ cycle_no”。

用C ++编写所需的代码。到目前为止,我的代码:

int number, finalnumber, a, cycle_no;
cin>>number;
for (cycle_no=0,finalnumber=0;cycle_no<=10;cycle_no+=1)
{
    for (a=0;number>0;number/=10) 
        a=number%10;
    finalnumber+=(a*a);
    if (finalnumber==1)
        break;
    else
        number=finalnumber;
    continue;
}
cout<<finalnumber;

1 个答案:

答案 0 :(得分:0)

    using namespace std;
    int  a, number ;
    int cycle_no=1;
    int sumdigits( int number) 
    {
     int sum=0;  

     while(number>0)
     {a=number%10;
     number/=10;
     sum+=(a*a);} 
     return sum;
     }

     int main(){
      cin>>number;
      while(cycle_no<=10)
      {cycle_no+=1;
      if(sumdigits(number)==1)
      break;
      else
      number=sumdigits(number);


      }if( sumdigits(number)==1)
      cout<<sumdigits (number );
      else cout<<number;
       }