我正在編寫計算阿姆斯壯數字的C++類的程序。除了每個輸出線應該爲已讀程序正常工作:計數器沒有給出預期的結果
Armstrong number 1: xxx
Armstrong number 2: xxx
Armstrong number 3: xxx
Armstrong number 4: xxx, etc...
的計算是正確的,但櫃檯給予遞增的數字「阿姆斯特朗1號」,2,3,只等反映實際阿姆斯特朗結果。我需要它來計算顯示的行數。
代碼如下。
#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
你期待什麼樣的價值?你有什麼價值? – 2013-02-27 21:49:25