博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2798:二进制转换十六进制
阅读量:5318 次
发布时间:2019-06-14

本文共 1752 字,大约阅读时间需要 5 分钟。

很郁闷,这道题一直WA,然而本地我测了好几组数据都是通过的,上网找了网友陈宇龙加油加油加油的AC的代码,http://blog.csdn.net/Since_natural_ran/article/details/51742149,发现没有什么不同。。。很无语。。

#include
#include
#include
int main() { char input[10005]; int i,temp,length,Case; scanf("%d",&Case); while(Case--){ scanf("%s",input); length = strlen(input); temp = length%4; int sum = 0; if(temp) //巧妙地处理了余数位 { for(i = 0;i < temp; i++) sum += (input[i] - '0')*pow(2,temp - 1 - i); //注意函数 printf("%X",sum); } for(i = temp;i < length; i += 4) //注意 i 必须要赋值 printf("%X",(input[i] - '0')*8 + (input[i+1] - '0')*4 + (input[i+2] - '0')*2 + (input[i+3] - '0')); printf("\n"); } return 0; }

#include <stdio.h>

#include <string.h>
#include <math.h>
char bin[10001]={0};
int main()
{
int n;
char hex16[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
scanf("%d",&n);
while(n--){
scanf("%s",bin);
int l=strlen(bin);
for(int i=0;bin[i]!='\0';i++){
bin[i]-=0x30;
}
char hex[2510]={0};
int rem=l%4;
int i,j,tmp=0;
if(rem!=0){
for(i=0;i<rem;i++){
tmp+=bin[i]*pow(2,rem-i-1);
}
hex[0]=hex16[tmp];
}
else{
hex[0]=hex16[bin[0]*8+bin[1]*4+bin[2]*2+bin[3]*1];
i=4;
}

if(l>4){

for(j=1;bin[i+4]!='\0';i+=4,j++){
hex[j]=hex16[bin[i]*8+bin[i+1]*4+bin[i+2]*2+bin[i+3]*1];
}
hex[j]=hex16[bin[i]*8+bin[i+1]*4+bin[i+2]*2+bin[i+3]*1];hex[j+1]='\0';
}
printf("%s\n",hex);
}
return 0;
}

这是我的代码。思路完全一样,然而就是WA。。。

不过上面那位仁兄代码写得很不错,学习了。

 

*************************************************************************

睡了一觉,醒来发现自己犯了一个愚蠢的错误:由于自己已经把输入字符串去“ASCII”化了,这样就不能用bin[i+4]!='\0';来判断字符串结束了!因为0的ASCII码就是‘\0’!之前测的用例对是因为没有走到过这个条件!!!

思维不严谨啊~这回知道了,还是用字符串的长度判断比较靠谱.........

 而且,对于字符串不要去“ASCII”化,而是像上面那位仁兄一样,用

(input[i] - '0')这种形式比较好!

转载于:https://www.cnblogs.com/cjf1699-dut/p/7306101.html

你可能感兴趣的文章
java 几个实用的小工具
查看>>
Html常用标签元素
查看>>
介绍一下Objective-c常用的函数,常数变量
查看>>
windows编译libevent时报告“缺少print_winsock_errors.obj”的解决
查看>>
.cue 文件格式
查看>>
Map-Reduce入门
查看>>
Hadoop_NameNode_代码分析_目录树(2)
查看>>
floyd判环算法(龟兔赛跑算法)
查看>>
显示学生各科成绩和总成绩-面试被问到
查看>>
获取正在运行的服务
查看>>
Spring实战Day2
查看>>
第六次作业—例行报告
查看>>
转载:保护模式1
查看>>
易宝支付碰到 交易签名无效问题
查看>>
SQL复制表
查看>>
wab框架
查看>>
GitHub项目管理维护实用教程
查看>>
【POJ】3415 Common Substrings
查看>>
JavaScript执行环境 + 变量对象 + 作用域链 + 闭包
查看>>
线程的语法 (event,重要)
查看>>