Cộng trừ (Plus Minus)

bài toán

cho mảng các số tự nhiên tính phần phân số của các số phần tử số dương, số âm và số 0. tính phần số thập phân của phân số này
Tính phần thập phân lên đến 6 chữ số
Cho ví dụ cho mảng sau [-1, -1, 0, 1, 1] do đó có 5 phần tử, 2 số dương,  2 số âm, 1 số 0. như vậy phân số sẽ lầ 2/5 = 0.400000 2/5 = 0.400000 1/5 = 0.200000
kết quả in ra sẽ là
0.400000
0.400000
0.200000

Miêu tả chức năng

Hoàn thành chức năng plusminus . In ra tỉ lệ số dương, số âm, số 0. làm tròn lên đến 6 con số. plusminus gồm những parameter sau
arr: mảng các số nguyên

giá trị đầu vào
dòng đầu tiên là n chiều dài của mảng
dòng thứ 2 là các giá trị của mảng
ar (ar[0], ar[1], .... , ar[n])

điều kiện ràng buộc
0<n<=100
-100<a[i]<=100

giá trị đầu ra
dòng đầu tiên là giá trị phân số của số các số nguyên dương so vói độ dài của mảng
dòng thứ 2 là giá trị phân số của số các số nguyên âm so vói độ dài của mảng
dòng thứ 3 là giá trị phân số của số các số 0 so vói độ dài của mảng

ví dụ
6
-4 3 -9 0 4 1

ví dụ giá trị đầu ta
0.500000
0.333333
0.166667

giải thích
có 3 số nguyên dương, 2 số nguyên âm, 1 số 0
tỉ lệ sẽ là số dương là 3/6 = 0.500000 số âm 2/6 = 0.333333 số 0 1/6  = 0.166667

php

<?php

// Complete the plusMinus function below.
function plusMinus($arr) {
$negcnt = 0;
$zerocnt = 0;
$poscnt = 0;
foreach($arr as $value) {
if($value < 0)
$negcnt ++;
else if ($value > 0)
$poscnt ++;
else
$zerocnt ++;
}
echo number_format($poscnt/sizeof($arr), 6)
. "\n"
. number_format($negcnt/sizeof($arr), 6)
. "\n"
. number_format($zerocnt/sizeof($arr), 6);
}

$stdin = fopen("php://stdin", "r");

fscanf($stdin, "%d\n", $n);

fscanf($stdin, "%[^\n]", $arr_temp);

$arr = array_map('intval', preg_split('/ /', $arr_temp, -1, PREG_SPLIT_NO_EMPTY));

plusMinus($arr);

fclose($stdin);





Comments

Popular posts from this blog

Intro to Tutorial Challenges

Strong Password