Я пишу программу для класса C++, которая вычисляет числа Армстронга. Программа работает отлично, за исключением каждой выходная строка должна читаться как:Счетчик не дает ожидаемого результата
Armstrong number 1: xxx
Armstrong number 2: xxx
Armstrong number 3: xxx
Armstrong number 4: xxx, etc...
Вычисление правильно, но счетчик, чтобы дать порядковый номер «Armstrong номер 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;
}
Как исправить это?
Что мне нужно: Armstrong номер 1: 0 Armstrong номер 2: 1 Armstrong номер 3: 153 Armstrong номер 4: 370
Что я получаю: Armstrong номер 0: 0 Armstrong номер 1: номер 1 Армстронга 153: 153 Армстронг номер 370: 370
Какую ценность вы ожидаете? Какую ценность вы получаете? –