Friday, 2 January 2015

UVA 10473 - Simple Base Conversion(cpp file)

Problem Type : Number Theory



#include<bits/stdc++.h>
#define MAX 100
using namespace std;
int main()
{

    long i,j,k,n,dec,len,hex,mod;
    char ch[MAX],hexa[MAX];
    while(gets(ch))
    {
        if(ch[0]=='-')
        {
            break;
        }

        len=strlen(ch);
        if(ch[0]=='0' && ch[1]=='x')
        {
            dec=0;
            k=len-3;
            for(i=2; i<len; i++)
            {
                if(ch[i]=='A')
                {
                    dec=dec+10*pow(16,k);
                }
                else if(ch[i]=='B')
                {
                    dec+=11*pow(16,k);
                }
                else if(ch[i]=='C')
                {
                    dec+=12*pow(16,k);
                }
                else if(ch[i]=='D')
                {
                    dec+=13*pow(16,k);
                }
                else if(ch[i]=='E')
                {
                    dec+=14*pow(16,k);
                }
                else if(ch[i]=='F')
                {
                    dec+=15*pow(16,k);
                }
                else
                {

                    int x=ch[i]-48;
                    dec+= x*pow(16,k);

                }

                k--;
            }
            printf("%ld\n",dec);

        }
        else
        {
            hex=atoi(ch);
            int m=0;
            for(i=0; ;i++)
            {

                mod=hex%16;
                hex=hex/16;
                if(mod==10)
                {
                    hexa[m]='A';
                    m++;
                }
                else if(mod==11)
                {
                    hexa[m]='B';
                    m++;
                }
                else if(mod==12)
                {
                    hexa[m]='C';
                    m++;
                }
                else if(mod==13)
                {
                    hexa[m]='D';
                    m++;
                }
                else if(mod==14)
                {
                    hexa[m]='E';
                    m++;
                }
                else if(mod==15)
                {
                    hexa[m]='F';
                    m++;
                }
                else
                {
                    hexa[m]=mod +48;
                    m++;
                }
                if(hex==0)
                    break;

            }
            printf("0x");
            for(i=m-1;i>=0;i--)
            {
                printf("%c",hexa[i]);
            }
            printf("\n");
        }
    }

}

No comments:

Post a Comment

ট্রিগার এর মাধ্যমে ডাটা ইনসার্ট - insert data using Database Trigger (Mysql)

সর্বপ্রথম আমরা প্রবলেমটা বুঝিঃ আমি একটা টেবিলের একটা কলামের ভ্যালুর উপর ডিপেন্ড করে আরেকটা কলামে ডাটা insert করব । এই কাজটা ট্রি...