SORU
31 Mart 2011, PERŞEMBE


Zor Google mülakat sorusu

Bir arkadaşım bir iş görüşmesi. Mülakat soruları biri beni düşünme var, sadece biraz geri istedi.

Negatif olmayan 2 sayı vardır: i ve j. Aşağıdaki denklemi göz önüne alındığında, çıkış sıralanır (en iyi) bir çözüm üzerinde yineleme ve bu şekilde j.

2^i * 5^j

İlk birkaç tur bu şekilde görünecektir:

2^0 * 5^0 = 1
2^1 * 5^0 = 2
2^2 * 5^0 = 4
2^0 * 5^1 = 5
2^3 * 5^0 = 8
2^1 * 5^1 = 10
2^4 * 5^0 = 16
2^2 * 5^1 = 20
2^0 * 5^2 = 25

Ne kadar uğraştıysam da bir düzen göremiyorum. Düşünceleriniz?

CEVAP
31 Mart 2011, PERŞEMBE


Dijkstra etkili bir çözüm "Programlama Bir Disiplin". türer Hamming için sorun bağlıyor. Burada dijkstra'nın çözüm benim uygulama.

int main()
{
    const int n = 20;       // Generate the first n numbers

    std::vector<int> v(n);
    v[0] = 1;

    int i2 = 0;             // Index for 2
    int i5 = 0;             // Index for 5

    int x2 = 2 * v[i2];     // Next two candidates
    int x5 = 5 * v[i5];

    for (int i = 1; i != n;   i)
    {
        int m = std::min(x2, x5);
        std::cout << m << " ";
        v[i] = m;

        if (x2 == m)
        {
              i2;
            x2 = 2 * v[i2];
        }
        if (x5 == m)
        {
              i5;
            x5 = 5 * v[i5];
        }
    }

    std::cout << std::endl;
    return 0;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • HouseholdHacker

    HouseholdHac

    6 Kasım 2007
  • YouplusmeVEVO

    YouplusmeVEV

    4 EYLÜL 2014