Napisz program wczytujący ciąg liczb całkowitych. Wydrukuj na ekranie kolejno wszystkie liczby, których suma cyfr wynosi 1. C ++

Odpowiedź :

Odpowiedź:

#include <iostream>

#include <vector>

bool hasDigitSumEvalToOne(int n) {

int sum = 0;

while (n > 0) {

sum += n % 10;

n /= 10;

}

return sum == 1;

}

int main() {

int a, n;

std::cout << "Ile liczb chcesz wprowdzic?\n";

std::cin >> n;

std::vector<int> validNumbers;

for (int i = 0; i < n; i++) {

std::cin >> a;

if (hasDigitSumEvalToOne(a)) {

validNumbers.push_back(a);

}

}

for(int valid : validNumbers){

std::cout << valid << std::endl;

}

return 0;

}

Wyjaśnienie: