From bac7284d1e0d84bcf8b169eb63d13a4f76790895 Mon Sep 17 00:00:00 2001 From: Gnieark Date: Sun, 22 Nov 2015 20:02:12 +0100 Subject: [PATCH] 24 --- euler24.php | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 euler24.php diff --git a/euler24.php b/euler24.php new file mode 100644 index 0000000..942a48e --- /dev/null +++ b/euler24.php @@ -0,0 +1,62 @@ + dizaines (rang 8) -> centaines (rang 7) .... + // trouver la première position où le chiffre de rang n est supérieur à celui de rang n-1 + $index1=count($arr) -2; + while($arr[$index1] >= $arr[$index1+1]){ + $index1--; + if($index1 == -1){ + //l'array est déja totalement inversé (1,2,3) => (3,2,1) + return false; + } + } + + //trouver un nombre plus grand que celui trouvé avant : $arr[$index1] + for($index2 = count($arr) - 1 ; $arr[$index2] <= $arr[$index1]; $index2--){} + //les permutter + $arr=permut($index1,$index2,$arr); + + //mettre ce qui suit $index1 dans l'ordre + $partOfArr=array(); + for($i = $index1+1; $i < count($arr); $i++){ + $partOfArr[]=$arr[$i]; + } + sort($partOfArr); + $j=0; + for($i = $index1+1; $i < count($arr); $i++){ + $arr[$i]=$partOfArr[$j]; + $j++; + } + return $arr; +} \ No newline at end of file