- #include <stdio.h>
-
- typedef unsigned long int ULONG;
-
- void MultiMatrice(ULONG Matrice1[][2], ULONG Matrice2[][2], ULONG MatriceResultat[][2])
- {
- int i,j,k;
- for(i = 0; i < 2; i++)
- {
- for(j = 0; j < 2; j++)
- {
- MatriceResultat[i][j] = 0;
- for(k = 0; k < 2; k++)
- MatriceResultat[i][j] += Matrice1[i][k] * Matrice2[k][j];
- }
- }
- }
-
- void CopieMatrice(ULONG Matrice1[][2], ULONG Matrice2[][2])
- {
- int i,j;
- for(i = 0; i < 2; i++)
- for(j = 0; j < 2; j++)
- Matrice1[i][j] = Matrice2[i][j];
- }
-
- int main(void)
- {
- int Nombre, n;
- ULONG Matrice[2][2] = {{0,1},{1,1}};
- ULONG resMatrice[2][2], tmpMatrice[2][2];
- CopieMatrice(tmpMatrice, Matrice);
-
- scanf("%lu",&Nombre);
- if(Nombre <= 0)
- {
- printf("Le resultat est : 0");
- getch();
- return 0;
- }
-
- // On cherche la puissance N de la matrice :
- // Le problème c'est que c'est en O( n ) pour l'instant !
- for(n = 0; n < Nombre; n++)
- {
- MultiMatrice(tmpMatrice, Matrice, resMatrice);
- CopieMatrice(tmpMatrice, resMatrice);
- }
-
- printf("Le resultat est : %lu", resMatrice[0][0]);
- // F(n+1) ==> resMatrice[1][1] !
-
- getch();
- return 0;
- }
#include <stdio.h>
typedef unsigned long int ULONG;
void MultiMatrice(ULONG Matrice1[][2], ULONG Matrice2[][2], ULONG MatriceResultat[][2])
{
int i,j,k;
for(i = 0; i < 2; i++)
{
for(j = 0; j < 2; j++)
{
MatriceResultat[i][j] = 0;
for(k = 0; k < 2; k++)
MatriceResultat[i][j] += Matrice1[i][k] * Matrice2[k][j];
}
}
}
void CopieMatrice(ULONG Matrice1[][2], ULONG Matrice2[][2])
{
int i,j;
for(i = 0; i < 2; i++)
for(j = 0; j < 2; j++)
Matrice1[i][j] = Matrice2[i][j];
}
int main(void)
{
int Nombre, n;
ULONG Matrice[2][2] = {{0,1},{1,1}};
ULONG resMatrice[2][2], tmpMatrice[2][2];
CopieMatrice(tmpMatrice, Matrice);
scanf("%lu",&Nombre);
if(Nombre <= 0)
{
printf("Le resultat est : 0");
getch();
return 0;
}
// On cherche la puissance N de la matrice :
// Le problème c'est que c'est en O( n ) pour l'instant !
for(n = 0; n < Nombre; n++)
{
MultiMatrice(tmpMatrice, Matrice, resMatrice);
CopieMatrice(tmpMatrice, resMatrice);
}
printf("Le resultat est : %lu", resMatrice[0][0]);
// F(n+1) ==> resMatrice[1][1] !
getch();
return 0;
}