2 rešenja zadatka "Veliki zbir"
Uslovi za završetak
Duži način rešavanja:
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int broj1[100]={0};
int broj2[100]={0};
int N;
cin >> N;
for (int i = 100 - N; i < 100; i++)
{
cin >> broj1[i];
}
cin >> N;
for (int i = 100 - N; i < 100; i++)
{
cin >> broj2[i];
}
int prenos = 0;
for (int i = 99; i >= 0; i--)
{
int zbir = broj1[i] + broj2[i] + prenos;
prenos = zbir / 10;
broj1[i] = zbir % 10;
}
bool pisi = false;
for (int i = 0; i < 100; i++)
{
if (broj1[i] != 0)
{
pisi = true;
}
if (pisi)
{
cout << broj1[i];
}
}
}
Izvor: petlja.org
Kraće rešenje:
(radimo naopačke)
#include <iostream>
using namespace std;
int main()
{
int N, M, i;
cin>>N;
int a[N];
for(i=N-1;i>=0;i--) cin>>a[i];
cin>>M;
int b[M];
for(i=M-1;i>=0;i--) cin>>b[i];
int p, d, zbir[100];
for(i=p=0;i<N || i<M; i++)
{
d=p;
if(i<N) d+=a[i];
if(i<M) d+=b[i];
p=d/10;
d=d%10;
zbir[i]=d;
}
if(p) zbir[i++]=p;
for(p=i-1;p>=0;p--) cout<<zbir[p];
return 0;
}
Poslednja izmena: четвртак, 16. октобар 2025, 15:37