teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2019/02/04 06:09

投稿

papinianus
papinianus

スコア12705

answer CHANGED
@@ -5,8 +5,35 @@
5
5
  <?php
6
6
  $tax = 1.08;
7
7
  $include_tax_price = 565;
8
-
9
8
  $exclude_tax_price = ceil($include_tax_price / $tax);
10
9
 
11
10
  echo $exclude_tax_price;
11
+ ```
12
+ ---
13
+ 色々と考えて、こういうのを作るのかなーと思いました。
14
+ ※コメントによると、税込みにするとき、切りあげらしいので、その場合//※1のところのroundをceilとかにすればいいかなと思います。
15
+ ```php
16
+ <?php
17
+ $nums = range(501,608);
18
+
19
+ foreach($nums as $num) {
20
+ echo $num.PHP_EOL;
21
+ if(hasZeinuki($num)) { echo "> ".zeinukiS($num)[0].PHP_EOL; }
22
+ echo PHP_EOL;
23
+ }
24
+
25
+ function hasZeinuki($m, $rate = 1.08) {
26
+ return count(zeinukiS($m, $rate)) > 0;
27
+ }
28
+
29
+ function zeinukiS($m, $rate = 1.08) {
30
+ $infloat = $m / $rate;
31
+ $min = floor($infloat);
32
+ $max = ceil($infloat);
33
+ $ret = [];
34
+ for($i = $min; $i <= $max; $i++) {
35
+ if(round($i * $rate) == $m) { $ret[] = $i; } //※1
36
+ }
37
+ return $ret;
38
+ }
12
39
  ```