码迷,mamicode.com
首页 > 其他好文 > 详细

CSU1160

时间:2015-07-17 18:18:10      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

十进制-十六进制

Time Limit: 1 Sec  Memory Limit: 128 MB

Description

 把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示。

Input

 每行一个整数x,0<= x <= 2^31。

Output

 每行输出对应的八位十六进制整数,包括前导0。

Sample Input

0
1023

Sample Output

0x00000000
0x000003FF

这道题原本应该很简单,像这样:

#include<stdio.h>
#include"iostream"
using namespace std;
int main()
{
    int x;
    while(cin>>x)
    {
        printf("0x%.8X\n",x);
    }
    return 0;
}

完全是格式控制的问题,但~~
当时竟然想出了一个不是办法的办法

#include"iostream"
#include"stdio.h"
#include"fstream"
using namespace std;
const int maxn=110;


int main()
{
    int n;
   while(scanf("%d",&n)!=EOF)
   {
       if(n<=16-1)
       printf("0x0000000%X\n",n);
       else
       {
           if(n<=16*16-1)
           printf("0x000000%X\n",n);
           else
           {
               if(n<=16*16*16-1)
               printf("0x00000%X\n",n);
               else
               {
                   if(n<=16*16*16*16-1)
                   printf("0x0000%X\n",n);
                   else
                   {
                       if(n<=16*16*16*16*16-1)
                       printf("0x000%X\n",n);
                       else
                       printf("0x00%X\n",n);
                   }
               }
           }
       }

   }

return 0;

}

 

 

CSU1160

标签:

原文地址:http://www.cnblogs.com/zsyacm666666/p/4654849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!