Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Тайм-аут в задаче на c++

misa chanka Ученик (96), на голосовании 3 года назад
Почему тайм-аут в данной программе??
может, реализация не лучшая, но помогите скорректировать :с
код:
#include < iostream >

using namespace std;

int main()
{
int a0;
cin >> a0;
while (a0 != 0)
{
int a1, a2, sum, b, i = 0;
a1 = a0 / 10;
a2 = a0 % 10;
sum = a1 + a2;
b = a2 * 10 + sum % 10;
i++;
if (b == a0)
cout << i << endl;
else while (sum != a0)
{
a1 = a2;
a2 = sum % 10;
sum = a1 + a2;
b = a2 * 10 + sum % 10;
i++;
if (b == a0)
{
cout << i << endl;
return 0;
}
}
}
}
задание:
Голосование за лучший ответ
user49912 Оракул (51185) 3 года назад
else while (sum != a0)

почему такое условие?
зациклится при вводе 01
Я Красавчег Мыслитель (8897) 3 года назад
У вас зациклится на этом условии при вводе 01
while (a0 != 0)
Потому что в конце идет сравнение и если b равно a0 то вывод информации на экран и опять по кругу. В else даже не попадём, где находится выход программы.
Похожие вопросы