Loading...
NinessonC avatar NinessonC 4 Точки

Sum of odd and even numbers in a given integer - Problem 8

#include <iostream>
#include <vector>
using namespace std;

int main() {
	int n = 0;
	int sumOdd = 0;
	int sumEven = 0;
	std::cin >> n;
	std::vector<int> digitArray;

	while (n > 0)
	{
		int digit = n % 10;
		n /= 10;
		digitArray.push_back(digit);
	}
	std::reverse(digitArray.begin(), digitArray.end());

	for (int i = 0; i < digitArray.size(); i++)
	{
		if (digitArray[i] % 2 == 0)
		{
			sumEven += digitArray[i];
		}
		else
		{
			sumOdd += digitArray[i];
		}
	}

	cout << sumOdd * sumEven << endl;

	return 0;
}

Здравейте! В задачата се иска от въведено число от конзолата да прочете кои цифри са четни и нечетни, съответно да намери сбора на четните и нечетните и да ги умножи. Програмата ми работи идеално, но зажалост само с позитивни числа. Когато въведа -12345, изкарва 0 като отговор. Предполагам, че е нещо изключително лесно, което не се досещам, за да разреша проблема, но уви не успях. Мисля, че решението е готино, хвърлете му един поглед :) Благодаря за отделеното внимание!

 

0
C++ Fundamentals
AlexanderHr avatar AlexanderHr 18 Точки

Сега не мога да го тествам, но забелязах, че while цикъла ти работи само докато n>0. Тоест ако n е -12345 той изобщо няма да се изпълни. Може да тестваш с while(n!=0).

1
NinessonC avatar NinessonC 4 Точки

Изобщо не бях обърнал внимание... Пътувам вече към курса, като се прибера ще го тествам, най-вероятно е от това! Благодаря ти много

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.