hdu 2057 A + B Again
来源:互联网 发布:寻侠境界突破数据 编辑:程序博客网 时间:2024/06/07 05:18
题目
不得不说今天做的题怎么都这么坑呢。这道题若是要一个标准的程序员来做的话,就相当于hdu上面的第一个题一样,毫无意义。。
但是我居然WA了,看到这个题的第一反应就是,要把16# ——>10#,然后再把10# ——>16#,来做,以为这是一个进制的转换,最后看博客才知道,原来可以直接输入输出16#,不禁觉得自己好傻啊 ^-^
下面是刚开始愚蠢的做法:
#include <stdio.h>#include <math.h>void p3(int n)//10#->16#{int a[20],i=0;int flag = 0;if(n<0) { flag = 1; n = -n;}if(n==0) printf("0");while(n!=0){a[i++]=n%16;if(a[i-1]>=10)a[i-1]=a[i-1]-10+65;n=n/16;}if(flag==1) printf("-");for(i=i-1;i>=0;i--)if(a[i]>=10)printf("%c",a[i]);elseprintf("%d",a[i]);printf("\n");}int q3(char b[])//16#->10#{int i=0,sum=0;int flag = 0;for(i=0;b[i]!='\0';i++){if(b[i]>='A'&&b[i]<='F')sum=sum*16+b[i]-55;else if(b[i]>='0'&&b[i]<='9')sum=sum*16+b[i]-'0';else {if(b[i]=='-')flag = 1;}}if(flag == 1)return -sum;else return sum;}int main(){char a[20],b[20];while(~scanf("%s%s",a,b)){int sum1 = q3(a);int sum2 = q3(b);//printf("sum1 = %d sum2 = %d\n",sum1,sum2);int sum = sum1+sum2;p3(sum);}return 0;}
下面是正确的代码:
#include<stdio.h>int main(){__int64 a,b,c;while(~scanf("%I64X %I64X",&a,&b)){c = a+b;if(c>=0) printf("%I64X\n",c);else printf("-%I64X\n",-c);}return 0;}
下面是别人的博客:
http://blog.csdn.net/tigerisland45/article/details/51828341
附上一张截图:
阅读全文
0 0
- hdu 2057 A+B Again
- hdu 2057 A + B again
- HDU-2057A + B Again
- hdu 2057 A + B Again
- HDU 2057 A + B Again
- hdu-2057-A + B Again
- HDU 2057 A + B Again
- HDU 2057 A + B Again
- hdu 2057 A + B Again
- HDU 2057 A + B Again
- HDU - 2057 A + B Again
- hdu 2057 a + b again
- HDU-2057 A+B Again
- hdu 2057 A + B Again
- HDU 2057 A + B Again
- hdu 2057 A + B Again
- HDU 2057 (A + B Again)
- hdu 2057 A + B Again
- 安装vsftp并设置被动模式
- 项目记忆
- 横竖屏切换
- 内存管理理解
- Android 关于selector中state_pressed="true"的位置顺序
- hdu 2057 A + B Again
- UE4 安卓打包
- 动态加载布局
- 保留一份数据源的配置druid
- n位数,去除m位,获得最大的值
- Codeforces Round #434 (Div. 1, based on Technocup 2018 Elimination Round 1) A-C题解
- 深入java 定义正则表达式
- 互联网协议入门(二)
- Spring整合Mybatis实现动态数据源切换教程配置