[[cisla]]
 

http://kmlinux/~culik/wiki

#include <iostream>
#include <string>
 
using namespace std;
 
int cnv (char c)
{
    if (c >= '0' && c <= '9')
       return c - '0';
    else if (c >= 'a' && c <= 'z')
       return c - 'a' + 10;
    else if (c >= 'A' && c <= 'Z')
       return c - 'A' + 10;
    else
       return 0;
}
 
char eval (int k)
{
    if (k < 10)
        return '0' + k ;
    else
        return 'a' + k - 10;
 
}
 
string toString (int n, int z)
{
    string t = "";
    if (n == 0)
    {
        t = "0";
    }
    else
    {
        while (n != 0)
        {
           char c = eval (n % z);
           t = c + t;
           n = n / z;
        }
    }
    return t;
}
 
int fromString (string s, int z)
{
    int k = s.length();
    int v = 0;
    for (int i = 0; i < k; i++)
    {
        int p = cnv (s[i]);
        v = z*v + p;
    }
    return v;
 
}
 
string reverse (string s)
{
    string v = "";
    int k = s.length();
    for (int i = 0; i < k; i++)
    {
        v = s[i] + v;
    }
    return v;
}
 
string reverse2 (string s)
{
    string v = "";
    int k = s.length();
    for (int i = k-1; i >= 0; i--)
    {
        v = v + s[i];
    }
    return v;
}
 
int main()
{
    cout << toString (82, 3) << endl;
    cout << fromString ("ff", 16) << endl;
    cout << reverse ("abc") << endl;
    cout << reverse2 ("abc") << endl;
    return 0;
}
 
cisla.txt · Last modified: 2018/10/11 17:16 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki