Програмски загатки

LepiDzoni

Profesionalen ulichen cigan
Член од
25 јули 2014
Мислења
890
Поени од реакции
1.701
Дај додека сме затворени дома да се размрдаме ментално со најразлицни задачи и загатки. Постирајте, решавајте. Јазик? Кој сакате.
Решенијата во [CОDЕ][/CОDЕ] формат плс.
Автоматски споено мислење:

Почнуваме со класика

 

DonExo

Apex
Член од
1 ноември 2012
Мислења
401
Поени од реакции
227
Дај додека сме затворени дома да се размрдаме ментално со најразлицни задачи и загатки. Постирајте, решавајте. Јазик? Кој сакате.
Решенијата во [CОDЕ][/CОDЕ] формат плс.
Автоматски споено мислење:

Почнуваме со класика

Ова е класичен entry example кој го дават во многу фирми за да ги набрзина филтрираат добар дел од кандидатите.

Секој што има основно програмерско познавање (if, else, elif etc..) би требало да може да ја реше за брзо време.

Еве го моете решение во Python, за оние што ги мрзи да мислат :)

Python:
def fizzbuzz(n):

    if n % 3 == 0 and n % 5 == 0:
        return 'FizzBuzz'
    elif n % 3 == 0:
        return 'Fizz'
    elif n % 5 == 0:
        return 'Buzz'
    else:
        return str(n)

print "\n".join(fizzbuzz(n) for n in range(1, 50))
 

LepiDzoni

Profesionalen ulichen cigan
Член од
25 јули 2014
Мислења
890
Поени од реакции
1.701
Ова е класичен entry example кој го дават во многу фирми за да ги набрзина филтрираат добар дел од кандидатите.

Секој што има основно програмерско познавање (if, else, elif etc..) би требало да може да ја реше за брзо време.

Еве го моете решение во Python, за оние што ги мрзи да мислат :)

Python:
def fizzbuzz(n):

    if n % 3 == 0 and n % 5 == 0:
        return 'FizzBuzz'
    elif n % 3 == 0:
        return 'Fizz'
    elif n % 5 == 0:
        return 'Buzz'
    else:
        return str(n)

print "\n".join(fizzbuzz(n) for n in range(1, 50))
Okej, ova e eden pristap. Aj sega probaj so dve proverki namesto so tri :)
 
Член од
9 февруари 2016
Мислења
191
Поени од реакции
284
Ова е класичен entry example кој го дават во многу фирми за да ги набрзина филтрираат добар дел од кандидатите.

Секој што има основно програмерско познавање (if, else, elif etc..) би требало да може да ја реше за брзо време.

Еве го моете решение во Python, за оние што ги мрзи да мислат :)

Python:
def fizzbuzz(n):

    if n % 3 == 0 and n % 5 == 0:
        return 'FizzBuzz'
    elif n % 3 == 0:
        return 'Fizz'
    elif n % 5 == 0:
        return 'Buzz'
    else:
        return str(n)

print "\n".join(fizzbuzz(n) for n in range(1, 50))
Уживај дека волку лесно даваат. ;)
 

Con Artist

the man with the key
Член од
1 мај 2012
Мислења
3.989
Поени од реакции
12.720
PHP:
for ($i = 1; $s = '', $i <= 16; $i++) {
    if ($i % 3 == 0) $s .= 'Fizz';
    if ($i % 5 == 0) $s .= 'Buzz';
    echo $s ? $s : $i, "\n";
}
PHP:
function fizzBuzz($start, $end, $data)
{
    for ($i = $start; $s = '', $i <= $end; $i++) {
        foreach ($data as $broj => $zbor) {
            if ($i % $broj == 0) {
                $s .= $zbor;
            }
        }
        $result[$i] = $s ? $s : $i;
    }
    return $result;
}

$data = [3 => 'Fizz', 5 => 'Buzz'];
print_r(fizzBuzz(1, 16, $data));
 
Член од
19 февруари 2016
Мислења
367
Поени од реакции
72
мала помош
треба да му напишам на внук ми 7 одд програма во small basic
задачите се под 1.периметар на круг, под 2. плоштина на круг
 

Anon

/b/ House /b/
Член од
13 декември 2007
Мислења
12.878
Поени од реакции
20.221
мала помош
треба да му напишам на внук ми 7 одд програма во small basic
задачите се под 1.периметар на круг, под 2. плоштина на круг
Еден код за двете задачи
Код:
TextWindow.WriteLine("Vnesi go radiusot na krugot")
radius = TextWindow.Read()
perimetar = radius*2*3.14
plostina = radius*radius*3.14
TextWindow.WriteLine("Perimetarot e " + perimetar)
TextWindow.WriteLine("Plostinata e " + plostina)
Иначе, вака нема да научи ништо внукот. Мора да седне и да почне да размислува.
 
Последно уредено:

LepiDzoni

Profesionalen ulichen cigan
Член од
25 јули 2014
Мислења
890
Поени од реакции
1.701
Уживај дека волку лесно даваат. ;)
Veruvam deka toj sto ti go dava prasanjevo na intervju ne sumnja vo toa dali ke uspees da razvies resenie, ama kakvo. ;)
Sto se odnesuva do mene, sekoj sto ke ja implementira sekoja proverka dvapati vekje padnal na intervjuto.

Naredno nesto sto moze da ti go pobaraat otkako ke go postavish prvoto resenie e da dodadesh dopolnitelni pravila, a posle toa da smenish vekje postoecki pravila ili redosled na aplikacija.

Resenieto na @DonExo na primer vo toj pogled, ne skalira bash najdobro.
Toa sto licno bi sakal da go vidam e nesto abstrahirano kako resenieto na @Con Artist koe sto bi dobilo sovrseni ocenki od mene (iako licno bi koristel reduce() namesto forEach(), ali toa e pred se prasanje na vkus.)
Автоматски споено мислење:

Okej da batalime intervjua temava e pred se za ladenje. Nareden zadatak:

Da se razvie funckija matrix, sto ke zeme integer N i ke vrati NxN spiralna matrica.

Код:
matrix(2)
    [[1, 2],
    [4, 3]]

matrix(3)
    [[1, 2, 3],
    [8, 9, 4],
    [7, 6, 5]]
 
Член од
26 јануари 2009
Мислења
8.655
Поени од реакции
11.126
Veruvam deka toj sto ti go dava prasanjevo na intervju ne sumnja vo toa dali ke uspees da razvies resenie, ama kakvo. ;)
Sto se odnesuva do mene, sekoj sto ke ja implementira sekoja proverka dvapati vekje padnal na intervjuto.

Naredno nesto sto moze da ti go pobaraat otkako ke go postavish prvoto resenie e da dodadesh dopolnitelni pravila, a posle toa da smenish vekje postoecki pravila ili redosled na aplikacija.

Resenieto na @DonExo na primer vo toj pogled, ne skalira bash najdobro.
Toa sto licno bi sakal da go vidam e nesto abstrahirano kako resenieto na @Con Artist koe sto bi dobilo sovrseni ocenki od mene (iako licno bi koristel reduce() namesto forEach(), ali toa e pred se prasanje na vkus.)
Автоматски споено мислење:

Okej da batalime intervjua temava e pred se za ladenje. Nareden zadatak:

Da se razvie funckija matrix, sto ke zeme integer N i ke vrati NxN spiralna matrica.

Код:
matrix(2)
    [[1, 2],
    [4, 3]]

matrix(3)
    [[1, 2, 3],
    [8, 9, 4],
    [7, 6, 5]]

Вакви филмања без гугл тешко :)

https://medium.com/@aaron_lu1/javascript-solving-fizzbuzz-in-three-ways-e6f6d3e2faf2
 

Bridger

fb.com/fitclaw
Член од
21 март 2014
Мислења
387
Поени од реакции
170
Okej da batalime intervjua temava e pred se za ladenje. Nareden zadatak:

Da se razvie funckija matrix, sto ke zeme integer N i ke vrati NxN spiralna matrica.

Код:
matrix(2)
    [[1, 2],
    [4, 3]]

matrix(3)
    [[1, 2, 3],
    [8, 9, 4],
    [7, 6, 5]]
C++:
#include <bits/stdc++.h>

using namespace std;

int mat[1000][1000];
bool vis[1000][1000];
int n;
enum previous{left,right,bottom,top};
previous pr;
bool valid(int r,int c)
{
    if(r>=0 && r<n && c>=0 && c<n)
        return 1;
    return 0;
}
//{-1,0,1,2} map {l,r,t,b}
void rec(int r,int c,int step,int anc)
{
    if(!vis[r][c]){
    mat[r][c]=step;
    vis[r][c]=1;
    }
    if(valid(r,c+1) && !vis[r][c+1] && anc==0)// desno
    {
        if(!valid(r,c+2) || vis[r][c+2])
            rec(r,c+1,++step,2);
        else
        rec(r,c+1,++step,0);
    }
    if(valid(r+1,c) && !vis[r+1][c] && anc==2)//dole
    {
        if(!valid(r+2,c) || vis[r+2][c])
            rec(r+1,c,++step,-1);
        else
        rec(r+1,c,++step,2);
    }
    if(valid(r,c-1) && !vis[r][c-1] && anc==-1)//levo
    {
        if(!valid(r,c-2) || vis[r][c-2])
            rec(r,c-1,++step,1);
        else
        rec(r,c-1,++step,-1);
    }
    if(valid(r-1,c) && !vis[r-1][c] && anc==1)//gore
    {
        if(!valid(r-2,c) || vis[r-2][c])
            rec(r-1,c,++step,0);
        else
        rec(r-1,c,++step,1);
    }

}
int main()
{
    cin >> n;
    memset(vis,false,sizeof vis);
   rec(0,0,1,0);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
            cout<<setw(3) <<mat[i][j] << " ";

        cout <<endl;
    }
}
//Ugly code
Ептен ми беше досадно во 3 часот вечерта :)
Challenge од мене:
За внесени координати на центар C(x,y) на кружница и радиус(r), да се отпечати во кој од квадрантите припаѓа кружницата(може да има делови во повеќе квадранти! :) )
GL HF
 
На врв Bottom