-1

数値を除算する時間数とリマインダーも計算するPHPスクリプトを作成する必要があります。$amount=9200;これを5000で割ると、出力はとに5000: 1 timesなりますReminder: 4200。私は使う必要があると思いますが$n=$amount%5000;、私はリマインダーだけを手に入れました。何度もそれは分裂します。

ありがとう!!

4

4 に答える 4

2

これはユークリッド除算としてよく知られています: http://en.wikipedia.org/wiki/Euclidean_division

$amount = 9200;
$divide = 5000;
$times = floor($amount/$divide);
$reminder = $amount%$divide;

echo "$amount = $times times $divide plus $reminder";
于 2013-02-06T13:48:32.053 に答える
0

演算子は剰余を返します。%次に、分割した回数を取得するために別の操作を行う必要があります。

$times = floor($amount/5000);
于 2013-02-06T13:48:39.747 に答える
0
$times = floor($amount / 5000);
$remainder = $amount % 5000;
于 2013-02-06T13:49:07.833 に答える
0
<?php

class  ATM
{
    public function deliver( $note )
    {
        // code to grab that not from the cash boxes...
    }
}

$notes = new SplFixedArray(5);
$notes[0] = 100;
$notes[1] = 50;
$notes[2] = 20;
$notes[3] = 10;
$notes[4] = 5;

$notesKey = 0;

$withdraw = 920;
$allocated = 0;

$deliver = new SplQueue();

// work out biggest notes for remaining value and queue
while($allocated < $withdraw)
{
    $remains  = ($withdraw-$allocated) % $notes[$notesKey];
    $numNotes = (($withdraw-$allocated)-$remains)/$notes[$notesKey];
    for( $i = 0; $i < $numNotes; $i++ )
    {
        $allocated += $notes[$notesKey];
        $deliver->enqueue($notesKey);
    }
    ++$notesKey;
}

$atm = new ATM();
while(!$deliver->isempty())
{
     $atm->deliver($notes[$deliver->dequeue()]);
}
?>

そのような何かがうまくいくはずです...

于 2013-02-06T14:11:42.887 に答える