Poniżej znajduje się przykładowy program w języku C++ rozwiązujący zadanie.
#include <iostream>
int main()
{
// Liczba zestawów testowych
int n;
std::cin >> n;
// Dla każdego zestawu liczb
for (int i = 0; i < n; i++)
// Liczby do dodania
std::string a, b;
std::cin >> a >> b;
// Długości liczb
int len_a = a.length(), len_b = b.length();
// Ustawienie iteratorów na ostatnie cyfry liczb
std::string::iterator it_a = a.end() - 1;
std::string::iterator it_b = b.end() - 1;
// Zmienna do przechowywania wyniku dodawania oraz licznik operacji przeniesienia
int result = 0, carry = 0;
// Pętla dodająca liczby cyfra po cyfrze od prawej do lewej
while (it_a >= a.begin() || it_b >= b.begin())
// Pobranie cyfr z liczb
int digit_a = (it_a >= a.begin()) ? *it_a - '0' : 0;
int digit_b = (it_b >= b.begin()) ? *it_b - '0' : 0;
// Dodanie cyfr oraz ewentualnego przeniesienia
int sum = digit_a + digit_b + carry;
// Zwiększenie licznika operacji przeniesienia, jeśli wynik dodawania jest większy niż 9
if (sum > 9)
carry = 1;
else
carry = 0;
// Przesunięcie iteratorów na kolejne cyfry liczb
it_a--;
it_b--;
}
// Wypisanie liczby operacji przeniesienia
std::cout << carry << std::endl;
return 0;
Mam nadzieje, że pomogłem :)
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
Poniżej znajduje się przykładowy program w języku C++ rozwiązujący zadanie.
#include <iostream>
int main()
{
// Liczba zestawów testowych
int n;
std::cin >> n;
// Dla każdego zestawu liczb
for (int i = 0; i < n; i++)
{
// Liczby do dodania
std::string a, b;
std::cin >> a >> b;
// Długości liczb
int len_a = a.length(), len_b = b.length();
// Ustawienie iteratorów na ostatnie cyfry liczb
std::string::iterator it_a = a.end() - 1;
std::string::iterator it_b = b.end() - 1;
// Zmienna do przechowywania wyniku dodawania oraz licznik operacji przeniesienia
int result = 0, carry = 0;
// Pętla dodająca liczby cyfra po cyfrze od prawej do lewej
while (it_a >= a.begin() || it_b >= b.begin())
{
// Pobranie cyfr z liczb
int digit_a = (it_a >= a.begin()) ? *it_a - '0' : 0;
int digit_b = (it_b >= b.begin()) ? *it_b - '0' : 0;
// Dodanie cyfr oraz ewentualnego przeniesienia
int sum = digit_a + digit_b + carry;
// Zwiększenie licznika operacji przeniesienia, jeśli wynik dodawania jest większy niż 9
if (sum > 9)
carry = 1;
else
carry = 0;
// Przesunięcie iteratorów na kolejne cyfry liczb
it_a--;
it_b--;
}
// Wypisanie liczby operacji przeniesienia
std::cout << carry << std::endl;
}
return 0;
}
Mam nadzieje, że pomogłem :)