实践编程作业(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;
答案 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;
}