


Помогите с решением проблемы!
Я недавно начал изучать с++ . Нам дали задание чтобы программа запрашивала число а, и после этого прога должна выводить все числа от 0 до этого числа с помощью while. С положительными и нулем все нормально , а вот с отрицательными не очень …
int a, dlt, n = 0;
cin >> a;
dlt = a > 0 ? 1 : -1;
while (n != a + dlt) {
cout << n << ' ';
n += dlt;
}
int a, dlt, n;
cin >> a;
n = -(dlt = a > 0 ? 1 : -1);
while (n != a) { cout << (n += dlt) << ' '; }
Для решения этой задачи нам нужно написать программу, которая запрашивает у пользователя число, а затем выводит все числа от 0 до этого числа. Для положительных чисел и нуля задача тривиальная, но для отрицательных чисел нужно будет выводить числа в обратном порядке.
#include <iostream>
int main() {
int a;
std::cout << "Введите число: ";
std::cin >> a;
if (a >= 0) {
int i = 0;
while (i <= a) {
std::cout << i << " ";
++i;
}
} else {
int i = 0;
while (i >= a) {
std::cout << i << " ";
--i;
}
}
std::cout << std::endl;
return 0;
}
Этот код делает следующее:
Запрашивает у пользователя число a.
Проверяет, положительное это число или отрицательное.
В зависимости от знака числа выводит все числа от 0 до a (включительно).
Для положительных чисел и нуля цикл while будет увеличивать переменную i от 0 до a. Для отрицательных чисел цикл while будет уменьшать переменную i от 0 до a.
Этот код минимально использует память и имеет хорошую производительность, так как использует только одну переменную для цикла и простую арифметику.
#include <iostream>
int main()
{
std::cout<<"Vvedite chislo\n";
int a = 0;
std::cin >> a;
int b=0;
std::cout<<b<<std::endl;
while(a!=b){
if(a<0) b--;
else if(a>0) b++;
std::cout<<b<<std::endl;
}
return 0;
}
то же самое, но шаг не 1, а -1