Viết chương trình đệ quy tính tổng n số nguyên đầu tiên

6 16.7K 39
Viết chương trình đệ quy tính tổng n số nguyên đầu tiên

Đang tải... (xem toàn văn)

Thông tin tài liệu

Viết chương trình đệ quy tính tổng n số nguyên đầu tiên

1. Viết chương trình đệ quy tính tổng n số nguyên đầu tiênlong 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ố x1, .,xn.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){return A[0];} else{Tg = Max(m-1);if (A[m]>Tg) return A[m];else return Tg; }} int n = sizeof(A)/sizeof(int);cout << Max(n-1);4. Cho mảng A có n số nguyên đã được sắp xếp không giảm. Xây dựng thủ tục đệ quy tìm phần tử x trong dãy theo thuật toán tìm kiếm nhị phân.int A[]={-5, -4,-2,0,3,7,8,12,30,34,45};int k;int BS(int x, int i, int j){if (i<=j){k = (int)((i+j)/2);if (A[k]==x) return k;elseif (A[k]>x) return BS(x,i,k-1);else return BS(x,k+1,j);} else return -1;} int main(){int n = sizeof(A)/sizeof(int);int x = -4;cout << BS(x,0,n-1);}5. Cho đa thức Pn(x) = anxn + an-1xn-1+ .+a1x+a0. Xây dựng thuật toán tính Pn(x0) dựa trên biểu diễnPn(x) = ((( .((anx+ an-1)x+an-2)x+ )x+a2)x+a1)x+a06. Viết chương trình tìm số lớn nhất, số nhỏ nhất trong danh sách liên kết S có cấu trúctypedef struct node{int k;struct node* next; } list; list *s;7. Viết thủ tục đệ quy tìm số lớn nhất, số nhỏ nhất trong danh sách liên kết S có cấu trúctypedef struct node{int k;struct node* next;} list; list *s; // Ky phap Ba Lan//Tinh gia tri bieu thuc, bieu thuc cho o dang hau to// DevC++//----------------------------------------------------#include<stdio.h>#include<conio.h>#include<iostream.h>#include<malloc.h>#include<string.h> #include<ctype.h>#define maxlen 255#define n 15using namespace std;typedef char chars[maxlen]; chars M[n] = {"24","4","+","2","/","2","*","6","1","2","+","/","12","*","-"};typedef struct node{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; } return y; }int main(){ int i,j, kq, a, b; chars x;for(i=0;i<n;i++){ strcpy(x,M[i]);if (x[0]>='0'&& x[0]<='9'){ a = 0; for(j=0;j<strlen(x);j++) a = a*10 + (char(x[j])-48);push(a,s); } else{pop(s,a);pop(s,b);kq = calc(b, a, x[0]);push(kq,s); }}pop(s,a); cout<<a; getch(); } . 1. Viết chương trình đệ quy tính tổng n số nguy n đầu tiênlong int Tong(long int n) {if (n= =0){ return 0;} else return (Tong (n- 1) +n) ;}Int main(){ cout<<Tong(10);. 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;}

Ngày đăng: 26/10/2012, 14:08

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan