#include
#include
#include
using namespace std;
void calcCoords(int index, int taille_dim, int nb_dims, int i, int* coordonnees)
{
coordonnees[i] = index % taille_dim;
if(nb_dims!=0)
calcCoords(index/taille_dim,taille_dim,nb_dims-1,i+1,coordonnees);
}
void coords(int index, int taille_tot, int nb_dims, int* coordonnees)
{
calcCoords(index,(int)pow(taille_tot,1.0/nb_dims),nb_dims,0,coordonnees);
}
//Fournir les coordonnées du ieme élément d'une matrice de D dimensions de même taille contenant N éléments.
int main(int argc, char* argv[]){
if(argc != 4)
cout << "pas le bon nb d'args" << endl;
else
{
int index_elem = atoi(argv[1]);
int nb_elem = atoi(argv[2]);
int nb_dims = atoi(argv[3]);
int* coordonnees = new int[nb_dims];
coords(index_elem, nb_elem, nb_dims,coordonnees);
for(int i = 0; i < nb_dims; ++i)
cout << "dimension " << i << " coord : " << coordonnees[i] << endl;
}
return 1;
};
Aucun commentaire:
Enregistrer un commentaire