私は、この質問が以前に尋ねられたと思う人に親切にお尋ねします。アームストロング数。アームストロングナンバーを入力してください
は、私は私の問題は、私のプログラムが実行され、150に達している時はいつでも、それはこのようにそれがない
(1^3) + ((5^3)-1) + (0^3)
代わりの
(1^3) + (5^3) + (0^3).
ないことである1〜10000の間のすべてのアームストロングの番号を印刷する必要がありますもちろん152の結果が出ているので、もちろん153を印刷しないでください(アームストロングの数字です)。他の数字もこれをしているのかどうかはわかりません。しかし、私は200までチェックして、150-160の範囲を除いて他の数字に問題はありません。
これはコンパイルエラーですか?コンパイラを再インストールする必要がありますか?現在、私はコードブロックを使用しています。
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
for(int i = 0;i <= 10000;++i)
{
int r = i;
int dig = 0;
while(r != 0)
{
dig++;
r /= 10;
}
int n = i, sum = 0;
while(n != 0)
{
int d = n % 10;
sum += pow(d, dig);
n /= 10;
}
if(sum == i)
cout << i << ' ';
}
cout << "\n\n\n";
return 0;
}
私は自分のコンピュータ上のプログラムを実行し、それがうまく働いた、印刷された:0 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 –
@ZedEvans:あなたはどのようなOSやコンパイラを使用しましたか? –
macOS 10.12。6、Jetbrain CLIonを使用して(どのコンパイラが含まれているか覚えていない) –