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