1. Viết chương trình đệ quy tính tổng n số nguyên đầu tiên
long int Tong(long int n){
if (n==0){
return 0;
} else return (Tong (n-1)+n);
}
Int main(){ cout<<Tong(10); getch(); }
2. Viết chương trình đệ quy tính ước số chung lớn nhất của hai số nguyên dương a và
b.
int USCLN(int a, int b){
if (b==0){
return a;
} else return USCLN(b, a%b);
}
3. Viết chương trình tìm số lớn nhất trong dãy số x
1
,...,x
n
.
Int A[]= {-5, -4,-2,400,311,711,8,12,30,34,45};
1. Tìm tuần tự
int max = A[0];
int n = sizeof(A)/sizeof(int);
for (int i=1;i<n;i++){
if (max<A[i]) max = A[i];
}
2. Tìm đệ quy
int A[]={-5, -4,-2,400,311,711,8,12,30,34,45};
int Tg;
int Max(int m){
if (m ==0){
n
x
n
+ a
n-1
x
n-1
+...+a
1
x+a
0
. Xây dựng thuật toán tính P
n
(x
0
) dựa trên biểu diễn
P
n
(x) = (((...((a
n
x+ a
n-1
)x+a
n-2
)x+....)x+a
2
)x+a
1
)x+a
0
int data;
struct node* next;
} stack;
stack *s;
void Print(stack* &Qptr){
if (Qptr != NULL){
cout<<Qptr->data;
cout<<Qptr->next;
}
else cout<<endl;
}
void push(int x, stack * &sptr){
stack *m;
m = (stack*)malloc(sizeof(stack));
m->data = x;
m->next = sptr;
sptr = m;
}
void pop(stack * &qptr, int &x){
x = qptr->data;
qptr = qptr->next;
}
int calc(int a, int b, char x){
int y;
switch(x){
case '+': y = a+b;break;
case '-': y = a-b;break;
case '*': y = a*b;break;
case '/': y = a/b;break;
}