2016-09-25 6 views
-1

ユーザが入力した数値から列と行を動的に計算するテーブルを作成したいとします。そのために、数値から列と行として最も近い2つの数値を計算したいと思います。PHPを使用した最大2倍の数値

たとえば、ユーザーが10を入力した場合、スクリプトは行を3または4として計算し、合計などの3または4の列は10になります。

3*3+1 = 10 

誰かが4を入力した場合、2列と2行が生成されます。 2と2を返します。 が10の場合、3列と4行が生成されます。 return 3 and 4

+0

がexplaiくださいそれはもっとはっきりと分かります。行番号は?および列番号。同じですか? –

+0

いいえ...誰かが4を入力した場合、2行2列が生成されます。それが10の場合はn 3列と4行です。 –

答えて

0

ここで必要なのは、入力の平方根を求めて床の値を取得することです。例:入力= 10の場合、sqrt(10)= 3.16227766017。今

、だから、床値すなわち3 を取得し、次元が何かを追加する必要があるかどうかを確認、3次

3です。

$dim = floor(sqrt($input)); 
$nearest = $input - ($dim * $dim); 

if ($nearest) { 
    printf("Nearest dimensions of %d = %d x %d + %d", $input, $dim, $dim,  $nearest); 
} else { 
    printf("Nearest dimensions of %d = %d x %d", $input, $dim, $dim); 
} 

: - 式は最寄り=入力することができます(寸法*寸法)だから、

、最終的な計算は、これはあなたの目的を解決する寸法*寸法+最も近い(ない場合は0)

ですとき$input = 4、出力:Nearest dimensions of 4 = 2 x 2

$input = 10、出力:Nearest dimensions of 10 = 3 x 3 + 1

関連する問題