int *parse_operation(char *base, char *operators, char **expr1, char **expr2) { int *flags; if ((flags = malloc(sizeof(*flags) * 3)) == 0) exit(-1); if (*expr1[0] == operators[OP_NEG_IDX]) { flags[0] = 1; *expr1 = *expr1 + 1 ; } else flags[0] = 0; if (*expr2[0] == operators[OP_NEG_IDX]) { flags[1] = 1; *expr2 = *expr2 + 1; } else flags[1] = 0; *expr1 = *expr1 + parse_zeros(base, *expr1); *expr2 = *expr2 + parse_zeros(base, *expr2); if (is_sup(base, *expr1, *expr2) == 0) flags[2] = 1; else flags[2] = 0; return (flags); }
char *modulo(char *base, char *operators, char *expr1, char *expr2) { char tmp[2]; tmp[0] = base[1]; tmp[1] = '\0'; while (is_sup(base, expr1, expr2)) { my_strcpy(expr1, soustraction(base, operators, expr1, expr2)); } return (expr1); }
int six_1() { int n; while (cin >> n) { int count = 0; for(int i = 1; i<= n;i++){ if(is_sup(i)) count++; } cout << count << endl; } return 0; }
/* ** fonction principale */ char *soustraction(char *base, char *operators, char *expr1, char *expr2) { if (is_sup(base, expr1, expr2)) { my_revstr(expr1); my_revstr(expr2); return (sub(base, operators, expr1, expr2, 0)); } else { my_revstr(expr1); my_revstr(expr2); return (sub(base, operators, expr2, expr1, 1)); } }
char *division(char *base, char *operators, char *expr1, char *expr2) { char *res; char tmp[2]; tmp[0] = base[1]; tmp[1] = '\0'; if ((res = malloc(sizeof(*res) * my_strlen(expr1) + my_strlen(expr2) + 1)) == 0) return (NULL); res[0] = base[0]; res[1] = '\0'; if (((indice_in_base(base, expr2[0]) == 1)) && (my_strlen(expr2) == 1)) return (expr1); while (is_sup(base, expr1, expr2)) { my_strcpy(expr1, soustraction(base, operators, expr1, expr2)); my_strcpy(res, addition(base, res, tmp)); } return (res); }
char *modulo(char *base, char *operators,char *expr1,char *expr2) { char tmp[2]; tmp[0] = base[1]; tmp[1] = '\0'; while (is_sup(base, expr1, expr2)) { my_strcpy(expr1, soustraction(base, operators, expr1, expr2)); } int nb; int nb2; int nb3; int nb4; int nb5; int nb6; nb = 3%1; nb2 = 2%4; nb3 = -4%2; nb4 = 4%-2; nb5 = 2%6; nb6 = -4%-4; my_putstr("\n 3%1 :: "); my_put_nbr(nb); /* my_putstr("\n 2%4;"); my_put_nbr(nb2); my_putstr("\n -4%2; "); my_put_nbr(nb3); my_putstr("\n 4%-2; "); my_put_nbr(nb4); my_putstr("\n 2%6; "); my_put_nbr(nb5); my_putstr("\n -4%-4 "); my_put_nbr(nb6);*/ my_putstr("FIN::::::::"); return (expr1); }
void infin(char *str1, char *str2) { int flag1; int flag2; char *added; char *mined; int flagsup; flag1 = 0; flag2 = 0; while (*str1 == '-') { flag1 = 1; str1++; } while (*str2 == '-') { flag2 = 1; str2++; } if (!flag1 && !flag2) { revstr(str1); revstr(str2); added = add(str1, str2); revstr(added); while (*added == '0' && *(added + 1) != '\0') added++; my_putstr(added); } else if (flag1 && flag2) { revstr(str1); revstr(str2); added = add(str1, str2); revstr(added); while (*added == '0' && *(added + 1) != '\0') added++; if (added[0] != '0' || my_strlen(added) != 1) my_putchar('-'); my_putstr(added); } /* -4 2 -2 4*/ else if (flag1 && !flag2) { while (*str1 == '0' && *(str1 + 1) != '\0') str1++; while (*str2 == '0' && *(str2 + 1) != '\0') str2++; flagsup = is_sup(str1, str2); revstr(str2); revstr(str1); /*-4 3 */ if (flagsup) { mined = min(str1, str2); revstr(mined); while (*mined == '0' && *(mined + 1) != '\0') mined++; if (mined[0] != '0' || my_strlen(mined) != 1) my_putchar('-'); my_putstr(mined); } /*-3 4 */ else { mined = min(str2, str1); revstr(mined); while (*mined == '0' && *(mined + 1) != '\0') mined++; my_putstr(mined); } } else if (!flag1 && flag2) { while (*str1 == '0' && *(str1 + 1) != '\0') str1++; while (*str2 == '0' && *(str2 + 1) != '\0') str2++; flagsup = is_sup(str1, str2); revstr(str2); revstr(str1); /* 4 -3*/ if (flagsup) { mined = min(str1, str2); revstr(mined); while (*mined == '0' && *(mined + 1) != '\0') mined++; my_putstr(mined); } /*-3 4 */ else { mined = min(str2, str1); revstr(mined); while (*mined == '0' && *(mined + 1) != '\0') mined++; if (mined[0] != '0' || my_strlen(mined) != 1) my_putchar('-'); my_putstr(mined); } } }