DUUUUUZO PUNKTOW! Napisz program, który dla dowolnego n wyznacza funkcję 2^n metodą wybraną przez użytkownika. Program powinien posiadać dwie funkcje do jej wyznaczania: a. metodą iteracyjną ze wzoru definicyjnego: 2^n = 2*2*...*2, b. metodą rekurencyjną zgodnie z definicją: 2^n = 2*2^(n-1) przy czym 2^0 = 1. Określ maksymalną wartość n dla typu zmiennej zastosowanej w programie.
Thorerv
#include <stdlib.h> #include <stdio.h> #define MAX 10 int iteracyjna(int); int rekurencyjna(int);
int main(){ int n; do{ printf("Podaj n<%d:",MAX); scanf("%d",&n); }while(n<0 || n>MAX);
int iteracyjna(int n){ int result = 1; while(n>0){ result*=2; n--; } return result;} int rekurencyjna(int n){ if(n==0){ return 1; }else{ return rekurencyjna(n-1)*2; }} //Mam nadzieje ze się przyda.
#include <stdio.h>
#define MAX 10
int iteracyjna(int);
int rekurencyjna(int);
int main(){
int n;
do{
printf("Podaj n<%d:",MAX);
scanf("%d",&n);
}while(n<0 || n>MAX);
//sposob wyboru liczenia, pozostawie juz tobie ;)
printf("iteracyjna: %d\n",iteracyjna(n));
printf("rekurencyjna: %d\n",rekurencyjna(n));
return 0;
}
int iteracyjna(int n){ int result = 1; while(n>0){ result*=2; n--; } return result;}
int rekurencyjna(int n){ if(n==0){ return 1; }else{ return rekurencyjna(n-1)*2; }}
//Mam nadzieje ze się przyda.