Bonjour,
Voila, j'ai un ptit souci avec un algo d'addition de nombre de bases kelconk : il marche apparement "parfaitement", mais jorai aimé savoir savoir kel optimisations joré pu lui apporter :
int Add(int nbr_prem, char *prem, int nbr_sec, char *sec, int nbr_base, char *base)
{
char *p = base;
char *result, *r = result;
int ret = 0;
int rang_prem, rang_sec;
int f = max(nbr_prem, nbr_sec);
int t;
int i;
if (nbr_prem < nbr_sec) {
t = nbr_sec - nbr_prem;
for (i = 0; i < t ; ++i) {
prem[t + i] = prem[i];
prem[i] = base[0];
}
} else if (nbr_sec < nbr_prem) {
t = nbr_prem - nbr_sec;
for (i = 0; i < t; ++i) {
sec[t + i] = sec[i];
sec[i] = base[0];
}
}
result = (char *)calloc(f + 1, 1);
for (i = f - 1; i >= 0; --i) {
while (*base) {
if (*base == prem[i]) rang_prem = base - p;
if (*base == sec[i]) rang_sec = base - p;
base++;
}
rang_prem += ret; ret = 0;
base = p;
rang_prem += rang_sec;
if (rang_prem > nbr_base - 1) {
ret++;
rang_prem -= nbr_base;
}
result[i + 1] = base[rang_prem];
}
if (!ret) {
for (i = 0; i < strlen(result) - 1; ++i) {
result[i] = result[i + 1];
}
result[i] = 0;
} else {
result[0] = ret;
result[f + 1] = 0;
}
printf("%s", result);
free(result);
return 0;
}
Si kelkun prefere voir le code indenté, j'enverrai le code par mail...
Merci d'avance ++
Alhexman