Սկիզբ » Ուսումնական նյութեր » Ծրագրավորում » Ալգորիթմներ » Թվի ձևափոխումը տասականից երկուական տեսքի

Թվի ձևափոխումը տասականից երկուական տեսքի

| Հոկտեմբեր 5, 2012 | 1 Մեկնաբանություն |

Տասական թիվը երկուական տեսքի ձևափոխման խնդիրը հաճախ է տրվում որպես ծրագրավորման պարզ վարժություն։ Բայց թե՛ դասախոսները, թե՛ դասագրքերը այս խնդիրը լուծում են իտերատիվ եղանակով՝ մոտավորապես այսպես.

std::string toBin( unsigned int num )
{
    std::string res("");
    while( num != 0 ) {
        unsigned int r = num % 2;
        if( r == 0 )
            res = "0" + res;
        else 
            res = "1" + res;
        num /= 2;
    }
    return res;
}

Վերջերս մի ինչ-որ հոդվածում կարդացի, որ սա իր էությամբ հենց ռեկուրսիվ խնդիր է։ Ես գրեցի նույն խնդրի լուծումը ռեկուրսիվ եղանակով և այն սկսեց ինձ ավելի դուր գալ։

std::string toBin( unsigned int num )
{
    if( num == 0 ) 
        return "0";
    if( num == 1 ) 
        return "1";
    return toBin(num >> 1) + toBin(num % 2);
}

Գործընկերների հետ քննարկելիս կարծիքները բաժանվեցին. ո՞րն է ավելի գեղեցիկ, նաև պարզ ու հեշտ ընկալելի։

Թվի ձևափոխումը տասականից երկուական տեսքի, 9.9 out of 10 based on 7 ratings

Նշագրեր: , ,

Բաժին: Ալգորիթմներ

Կիսվել , տարածել , պահպանել

VN:F [1.9.20_1166]
Rating: 9.9/10 (7 votes cast)

Մեկնաբանություններ (1)

Թրեքբեք հղում | Մեկնաբանությունների RSS ժապավեն

  1. Ինձ էլ ա ռեկուրսիվ լուծումը ավելի գեղեցիկ թվում

Մեկնաբանեք

Կհաստատվեն միայն մեսրոպատառ հայերենով գրած մեկնաբանությունները

189