我正在为计算 Armstrong 数字的 C++ 类编写程序。该程序工作正常,除了每个输出行应该读为:
Armstrong number 1: xxx
Armstrong number 2: xxx
Armstrong number 3: xxx
Armstrong number 4: xxx, etc...
计算是正确的,但给出增量数字“Armstrong number 1”、2、3 等的计数器仅反映实际的 armstrong 结果。我需要它来计算显示的行数。
代码如下。
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
// Change the console's background color.
system ("color F0");
// Declare the variables
int i = 0, counter = 1, var1, var2, var3, var4;
while (i < 1000)
{
var1 = i/100;
var2 = (i % 100) / 10;
var3 = (i % 100) % 10;
var4 = (var1 * var1 * var1) + (var2 * var2 * var2) + (var3 * var3 * var3);
if (i == var4)
cout << "\n Armstrong number " << counter << ": " << var4;
counter++;
i++;
}
cout << "\n";
system ("pause");
return 0;
}
我该如何解决?
我需要的是: 阿姆斯特朗 1 号:0 阿姆斯特朗 2 号:1 阿姆斯特朗 3 号:153 阿姆斯特朗 4 号:370
我得到的是: 阿姆斯特朗号 0:0 阿姆斯特朗号 1:1 阿姆斯特朗号 153:153 阿姆斯特朗号 370:370