私は与えられた数かどうかを見つけるためのプログラムを書いているがArmstrong Numberです:私はそれを実行するとファインディング・アームストロングナンバー使用してC++
int main()
{
int n,rem,sum=0;
cout<<"Enter the Number for checking"<<endl;
cin>>n;
while(n!=0)
{
rem=n%10;
sum=sum+(rem*rem*rem);
n=n/10;
}
if(sum==n)
{
cout<<"Armstrong Number"<<endl;
}
else
{
cout<<"It's not a armstrong number";
}
return 0;
}
が、それは常に報告入力に関わらず、「これは、アームストロングの番号ではありません」 。
コードを次のように変更し、正しい結果を得ました。しかし、なぜ私はn1
に入力を割り当てて操作を行う必要があるのか理解できません。なぜn
で直接操作できませんか?あなたのプログラムがsum
とn
を比較if (sum==n)
ラインで
int main()
{
int n,rem,sum=0,n1;
cout<<"Enter the Number for checking"<<endl;
cin>>n;
n1=n;
while(n1!=0)
{
rem=n1%10;
sum=sum+(rem*rem*rem);
n1=n1/10;
}
if(sum==n)
{
cout<<"Armstrong Number"<<endl;
}
else
{
cout<<"It's not a armstrong number";
}
return 0;
}