Bài liên quan:
- Cách trình bày mô tả một thuật toán chia để trị
- Trình bày cách tính độ phức tạp của một đoạn chương trình
- Các bài tập chuyên đề chia để trị cơ bản
#include <stdio.h>
int Tong (int *a,int n){
if (n==1)
return a[0];
else
return a[n-1]+Tong(a,n-1);
}
int TongLe(int *a,int n){
if (n==1){
if (a[0]%2==0)
return 0;
else
return a[0];
}
else if (a[n-1]%2==0)
return TongLe(a,n-1)+0;
else
return TongLe(a,n-1)+a[n-1];
}
int doicho(int &a,int &b){
int t = a;
a = b;
b = t;
}
void DaoMang(int *a,int i,int j){ if(j-i+1==2)
doicho(a[i],a[j]);
else if(j-i+1>2){
doicho(a[i],a[j]);
DaoMang(a,i+1,j-1);
}
}
void inMang(int *a,int n){
for(int i=0;i<n;i++)
printf("%d ",a[i]);
}
int main(){
int *a =new int[6] {5,8,1,4,6,7};
printf("%d ",Tong(a,6));
printf("\n\n---\n\n");
printf("mang truoc khi dao: \n");
inMang(a,6);
printf("\nmag sau khi dao:\n");
DaoMang(a,0,5);
inMang(a,6);
return 0;
}