подключив предварительно библиотеку <vector>
int x[5][5];
for(int i = 0; i < 5; i++){
for(int j = 0; i<5; j++){
x[i][j] = rand()%20 - 10;
}
}
vec<int> vec;
for(int i = 0; i < 5; i++){
for(int j =0; j < 5; j++){
if(x[i][j] < 0){
for(int f = 0; f < vec.size(); f++){
if(vec(f) == x[i][j]) break;
}
else { vec.push_back(j); }
}
}
}
}
if(vec == 0) cout << "Нет столбцов с отрицательным значением";
else{ for(int j = 0, j<vec.size(); j++){
cout << vec(j) << ' ';
}
N = int(input('Введите число N'))
sum = 0
add = 2
k = 0
while sum < =N:
sum += add
add += 2
k += 1
print(k)
Объяснение:
У меня реализация попроще, чем в предыдущем ответе, но вроде бы тоже правильная :)
Мы видим, что к сумме постоянно прибавляется число, на 2 большее, чем предыдущее, начиная с двух. Это и есть переменная add: изначально она равна 2, то есть на первом проходе цикла к сумме прибавится 2. После этого, в этом же цикле значение переменной add станет равно 4 (7-я строка), поэтому на втором проходе к сумме прибавится 4, и так далее. В итоге получаем правильную сумму: 2 + 4 + 6 + ...
Переменная k - это как раз искомое количество слагаемых этой суммы. Каждый раз, когда к сумме прибавляется новое слагаемое, она увеличивается на 1.
9*10^4+8*10^3+7*10^2+2*10^0+1*10^(-1)+2*10^(-2)+3*10^(-3)=9872.123