recur
This commit is contained in:
parent
2a64ba1c67
commit
97470838b2
101
DEV1.1/TP14/power.c
Normal file
101
DEV1.1/TP14/power.c
Normal file
@ -0,0 +1,101 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int powRec(int x, int n)
|
||||
{
|
||||
if (n==0)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
x=x*powRec(x,n-1);
|
||||
return x;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int powImp(int x, int n)
|
||||
{
|
||||
if (n==0)
|
||||
{
|
||||
return 1;
|
||||
}else
|
||||
{
|
||||
for (int i = 1; i < n; ++i)
|
||||
{
|
||||
x=x*x;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
}
|
||||
|
||||
void mystere(int n)
|
||||
{
|
||||
if (n==0)
|
||||
{
|
||||
/* rien */
|
||||
}else
|
||||
{
|
||||
mystere(n/2);
|
||||
printf("%d",n%2);
|
||||
}
|
||||
}
|
||||
|
||||
void mystereImp(int n)
|
||||
{
|
||||
int tab[32];
|
||||
int i;
|
||||
if (n==0)
|
||||
{
|
||||
/* rien */
|
||||
}else
|
||||
{
|
||||
for (i = 0; n!=0 ; ++i)
|
||||
{
|
||||
tab[i]=n%2;
|
||||
n=n/2;
|
||||
}
|
||||
for (int j = i-1; j > -1 ; --j)
|
||||
{
|
||||
printf("%d",tab[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int iteration=-1;
|
||||
|
||||
void syracuse2(int n)
|
||||
{
|
||||
iteration++;
|
||||
if (n==1)
|
||||
{
|
||||
printf("u%d = %d\n",iteration,1);
|
||||
}
|
||||
else{if ((n%2)==0)
|
||||
{
|
||||
printf("u%d = %d/2 = %d\n",iteration,n,n/2);
|
||||
syracuse2(n/2);
|
||||
}else
|
||||
{
|
||||
printf("u%d = 3*%d+1 = %d\n",iteration,n,(3*n)+1);
|
||||
syracuse2((3*n)+1);
|
||||
}}
|
||||
}
|
||||
void syracuse(int n)
|
||||
{
|
||||
iteration=-1;
|
||||
syracuse2(n);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
/*mystere(5646);
|
||||
printf("\n");
|
||||
mystereImp(5646);*/
|
||||
syracuse(5);
|
||||
syracuse(13);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user