četvrtak, 31. prosinca 2009.
srijeda, 30. prosinca 2009.
sortiranje velikih brojeve(merge sort)
#include
int a[10], t[10];
void sortiraj(int, int);
void spoji(int, int, int);
int main()
{
int i;
for(i=0; i<10;i++)
scanf("%d", &a[i]);
sortiraj(0,9);
for(i=0; i<10;i++)
printf("%d ", a[i]);
return 0;
}
void sortiraj(int lo, int hi)
{
if (hi==lo)return;
int mid=(hi+lo)/2;
sortiraj(lo,mid);
sortiraj(mid+1,hi);
spoji(lo,mid,hi);
}
void spoji(int lo, int mid, int hi)
{
int ia=lo;
int ib=mid+1;
int it=0;
while(ia<=mid&&ib<=hi)
t[it++]=(a[ia]
while(ia<=mid) t[it++]=a[ia++];
while(ib<=hi) t[it++]=a[ib++];
int uk=(hi-lo)+1, i;
for(i=0;i a[lo+i]=t[i];
}
int a[10], t[10];
void sortiraj(int, int);
void spoji(int, int, int);
int main()
{
int i;
for(i=0; i<10;i++)
scanf("%d", &a[i]);
sortiraj(0,9);
for(i=0; i<10;i++)
printf("%d ", a[i]);
return 0;
}
void sortiraj(int lo, int hi)
{
if (hi==lo)return;
int mid=(hi+lo)/2;
sortiraj(lo,mid);
sortiraj(mid+1,hi);
spoji(lo,mid,hi);
}
void spoji(int lo, int mid, int hi)
{
int ia=lo;
int ib=mid+1;
int it=0;
while(ia<=mid&&ib<=hi)
t[it++]=(a[ia]
while(ia<=mid) t[it++]=a[ia++];
while(ib<=hi) t[it++]=a[ib++];
int uk=(hi-lo)+1, i;
for(i=0;i
}
Zbrajanje
radi priblizno ruskom mnozenju samo sto zbraja velike brojeve pisano je u c
rjesenje:
#include
int a[10], t[10];
void sortiraj(int, int);
void spoji(int, int, int);
int main()
{
int i;
for(i=0; i<10;i++)
scanf("%d", &a[i]);
sortiraj(0,9);
for(i=0; i<10;i++)
printf("%d ", a[i]);
return 0;
}
void sortiraj(int lo, int hi)
{
if (hi==lo)return;
int mid=(hi+lo)/2;
sortiraj(lo,mid);
sortiraj(mid+1,hi);
spoji(lo,mid,hi);
}
void spoji(int lo, int mid, int hi)
{
int ia=lo;
int ib=mid+1;
int it=0;
while(ia<=mid&&ib<=hi)
t[it++]=(a[ia]
while(ia<=mid) t[it++]=a[ia++];
while(ib<=hi) t[it++]=a[ib++];
int uk=(hi-lo)+1, i;
for(i=0;i a[lo+i]=t[i];
}
rjesenje:
#include
int a[10], t[10];
void sortiraj(int, int);
void spoji(int, int, int);
int main()
{
int i;
for(i=0; i<10;i++)
scanf("%d", &a[i]);
sortiraj(0,9);
for(i=0; i<10;i++)
printf("%d ", a[i]);
return 0;
}
void sortiraj(int lo, int hi)
{
if (hi==lo)return;
int mid=(hi+lo)/2;
sortiraj(lo,mid);
sortiraj(mid+1,hi);
spoji(lo,mid,hi);
}
void spoji(int lo, int mid, int hi)
{
int ia=lo;
int ib=mid+1;
int it=0;
while(ia<=mid&&ib<=hi)
t[it++]=(a[ia]
while(ia<=mid) t[it++]=a[ia++];
while(ib<=hi) t[it++]=a[ib++];
int uk=(hi-lo)+1, i;
for(i=0;i
}
Rusko mnozenje
evo rusko mnozenje u c++
rjesenje:
#include
using namespace std;
int main()
{
char a[100],b[100];
int br1[100]={0}, br2[100]={0}, br3[100]={0};
int sizeA=0, sizeB=0;
cin>>a; cin>>b;
while(a[sizeA]!='\0') sizeA++;
while(b[sizeB]!='\0') sizeB++;
for(int i=sizeA-1; i>=0;i--) br1[sizeA-1-i]=a[i]-'0';
for(int i=sizeB-1; i>=0;i--) br2[sizeB-1-i]=b[i]-'0';
//int veci=(sizeA>sizeB)? sizeA:sizeB;
for(int i=0;i {
for (int j=0;j br3[i+j]+=(br1[i]*br2[j]);
}
for(int i=0;i<98;i++){
br3[i+1] +=(br3[i]/10);
br3[i] %=10;
}
cout< int nasao=0;
for (int i=99; i>=0;i--)
{
if(br3[i]!=0) nasao=1;
if(nasao !=0) cout< }
return 0;
}
rjesenje:
#include
using namespace std;
int main()
{
char a[100],b[100];
int br1[100]={0}, br2[100]={0}, br3[100]={0};
int sizeA=0, sizeB=0;
cin>>a; cin>>b;
while(a[sizeA]!='\0') sizeA++;
while(b[sizeB]!='\0') sizeB++;
for(int i=sizeA-1; i>=0;i--) br1[sizeA-1-i]=a[i]-'0';
for(int i=sizeB-1; i>=0;i--) br2[sizeB-1-i]=b[i]-'0';
//int veci=(sizeA>sizeB)? sizeA:sizeB;
for(int i=0;i
for (int j=0;j
}
for(int i=0;i<98;i++){
br3[i+1] +=(br3[i]/10);
br3[i] %=10;
}
cout<
for (int i=99; i>=0;i--)
{
if(br3[i]!=0) nasao=1;
if(nasao !=0) cout<
return 0;
}
utorak, 29. prosinca 2009.
29.12.09-rekurzivni faktorijal
napisati program koji racuna faktorijel pomocu rekurzije
rjesenje:
#include
int fakt(int n)
{
if(n==0) return 1;
else return n*fakt(n-1);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",fakt(n));
return 0;
}
rjesenje:
#include
int fakt(int n)
{
if(n==0) return 1;
else return n*fakt(n-1);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",fakt(n));
return 0;
}
Pretplati se na:
Postovi (Atom)