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

LepiDzoni

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

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

 

DonExo

Apex
Член од
1 ноември 2012
Мислења
451
Поени од реакции
277
Дај додека сме затворени дома да се размрдаме ментално со најразлицни задачи и загатки. Постирајте, решавајте. Јазик? Кој сакате.
Решенијата во [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
Мислења
1.322
Поени од реакции
3.171
Ова е класичен 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
Мислења
1.240
Поени од реакции
3.137
Ова е класичен 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
Мислења
5.024
Поени од реакции
19.507
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
Мислења
412
Поени од реакции
82
мала помош
треба да му напишам на внук ми 7 одд програма во small basic
задачите се под 1.периметар на круг, под 2. плоштина на круг
 

Anon

/b/ House /b/
Член од
13 декември 2007
Мислења
16.698
Поени од реакции
27.624
мала помош
треба да му напишам на внук ми 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
Мислења
1.322
Поени од реакции
3.171
Уживај дека волку лесно даваат. ;)
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
Мислења
11.570
Поени од реакции
17.969
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
 
Член од
21 март 2014
Мислења
509
Поени од реакции
366
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
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.127
Поени од реакции
1.061
Challenge од мене:
За внесени координати на центар C(x,y) на кружница и радиус(r), да се отпечати во кој од квадрантите припаѓа кружницата(може да има делови во повеќе квадранти! :) )
GL HF
Императивно решение во Kotlin:
Код:
fun quadrantCheck(positionX: Int, positionY: Int, radius: Int): List<Int> {
    val rightPlane = positionX + radius > 0
    val leftPlane = positionX - radius < 0
    val topPlane = positionY + radius > 0
    val bottomPlane = positionY - radius < 0
    val quadrants = mutableListOf<Int>()
    if (rightPlane && topPlane) quadrants.add(1)
    if (topPlane && leftPlane) quadrants.add(2)
    if (leftPlane && bottomPlane) quadrants.add(3)
    if (bottomPlane && rightPlane) quadrants.add(4)
    return quadrants
}
Малце "покомплицирано" решение :D
Код:
enum class Quadrant(val number: Int, val intersectsWithCircle: (positionX: Int, positionY: Int, radius: Int) -> Boolean) {
    QUADRANT_1(1, { positionX, positionY, radius -> positionY + radius > 0 && positionX + radius > 0 }),
    QUADRANT_2(2, { positionX, positionY, radius -> positionY + radius > 0 && positionX - radius < 0 }),
    QUADRANT_3(3, { positionX, positionY, radius -> positionY - radius < 0 && positionX - radius < 0 }),
    QUADRANT_4(4, { positionX, positionY, radius -> positionY - radius < 0 && positionX + radius > 0 });
}

fun quadrantCheckCO(positionX: Int, positionY: Int, radius: Int): List<Int> =
    Quadrant.values()
        .filter { it.intersectsWithCircle(positionX, positionY, radius) }
        .map {it.number}
И main-ot за тестирање на двете функции:
Код:
fun main() {
    println(quadrantCheck(1, 1, 5))
    println(quadrantCheckCO(1, 1, 5))
    println(quadrantCheck(2, 2, 1))
    println(quadrantCheckCO(2, 2, 1))
    println(quadrantCheck(0, -2, 1))
    println(quadrantCheckCO(0, -2, 1))
}
Challenge од мене:
Да се напише функција за трансформација на стринг. Трансформацијата се прави така што треба да се додаде бројот на повторувања пред секој карактер. Да се испечати трансформираниот стринг.
На пример:
bbbcedd -> 3b1c1e2d
aaqqaaap -> 2a2q3a1p
 
Член од
12 март 2009
Мислења
19.713
Поени од реакции
15.584
мала помош
треба да му напишам на внук ми 7 одд програма во small basic
задачите се под 1.периметар на круг, под 2. плоштина на круг
не сум во тек поодамна ,18+ години, а внукот е 5одд, ама може ќе треба да се спремам. Каков е тој small basic?
имам стар ПЦ кај што чував мои доста сложени тенички QBasic програми, ама поодамна не работи ништо без компајлери, мислам нити компајлираните ехе програмите не работаат во виндовс...не верувам дека работаат во школите со ДОС ??
бај тхе веј, се сеќавам дека уште пред 15? години, овластениот инспектор на Мајкрософт за Хрватска контролирал по фабрики компјутерите и им забранувал на тие ПЦ што имаат лиценцирани Виндовси да користат виндовс некомпатибилни програми
Можеби за најмали деца е добро да се користи, АКО постои такво нешто, Таблет со можност за користење на Бејзици ?????
 
Член од
2 септември 2021
Мислења
5
Поени од реакции
4
Здраво, ми треба вашата помош, се разбира доколку некој е расположен и би сакал да помогне. Сакам да имплементирам CI/CD Pipeline прекѕ Github Actions, кое што ќе ми прави automatic deployment на demo React app, инсталирана на Apache server на Linux виртуелна машина.

Оваа скрипта успеав да ја склопам засега, но ми дава проблем кај drone-ssh. Дали некој би знаел како можам да го решам ова? На placeholders за username и IP ставам соодветно податоци од виртуелката.


name: Deploy to Apache

on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -eux {0}

steps:
- name: Use Node.js 16
uses: actions/setup-node@v2
with:
node-version: '16'

- name: Checkout repository
uses: actions/checkout@v2

- name: Install SSH
run: sudo apt-get install openssh-client -y

- name: Deploy to Apache
uses: appleboy/ssh-action@master
with:
host: IP address
username: username
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
git pull origin main
npm install
npm run build
sudo cp -r build/* /var/www/html/
 

Diferans

Природно high
Член од
3 јули 2009
Мислења
65
Поени од реакции
125
кое што ќе ми прави automatic deployment на demo React app, инсталирана на Apache server на Linux виртуелна машина.
Прво што ми паѓа на памет, можеби не e ставен јавниот клуч во ~/.ssh/authorized_keys на серверот, за да дозволи логирање преку ssh?
 

Kajgana Shop

На врв Bottom