杭电 2057 A + B Again
2014-02-07 11:08
281 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2057
开始想偷懒只用16进制输入输出来解决,怎么也没有写出来,后来就把问题划归为进制转换问题,一步一步写了出来。
c++版:http://blog.sina.com.cn/s/blog_69fc13c50100lfoq.html和http://blog.csdn.net/xujinsmile/article/details/7836413怎么感觉用c++都比c简单,下个学期得把c++和c对比再好好学一遍。
开始想偷懒只用16进制输入输出来解决,怎么也没有写出来,后来就把问题划归为进制转换问题,一步一步写了出来。
#include<stdio.h> #include<string.h> __int64 fang(int i){ __int64 y = 1; int j; for(j = 1;j <= i;j++) y *= 16; return y; } __int64 change(char s[]){ __int64 x = 0; int i,len,j = 0; len = strlen(s); for(i = len-1;i >= 0;i--) { if(s[i] >= '0' && s[i] <= '9') { x += (__int64)(s[i]-'0')*fang(j); j++; } else if(s[i] >= 'A' && s[i] <= 'F'){ x += (__int64)(s[i]-'A'+10)*fang(j); j++; } else if(s[i] == '+'){ x = x; } else x = -x; } return x; } void add(__int64 x,__int64 y){ int i = 0,j; __int64 sum,t; char s[16]; t = sum = x + y; if(t == 0) { printf("0"); } else{ if(t < 0) sum = -sum; while(sum){ s[i] = sum%16+'0'; if(s[i] > '9') s[i] = sum%16+55; sum /= 16; i++; } if(t < 0) printf("-"); for(j = i-1;j >= 0;j--) printf("%c",s[j]); } printf("\n"); } int main() { char s[16],t[16]; int i; __int64 x,y; while(scanf("%s%s",s,t) != EOF) { x = change(s); y = change(t); add(x,y); } return 0; }感觉自己的解法太弱了,其它简单解法:http://zhidao.baidu.com/link?url=1zAkif-h33Ex286kl-E0YRj-7kZDF2pqZuvlP9f9L7zdCitqOPZ3d8OV8KkLOhMKpFUHeZptT_kVdizyEvPj5q
c++版:http://blog.sina.com.cn/s/blog_69fc13c50100lfoq.html和http://blog.csdn.net/xujinsmile/article/details/7836413怎么感觉用c++都比c简单,下个学期得把c++和c对比再好好学一遍。
相关文章推荐
- 杭电 2057 A+B Again(睡前一水--16进制控制)
- 杭电-2057 A + B Again
- 杭电ACM 2057: A + B Again
- 杭电 2057 A + B Again【十六进制】【三目运算符】
- HDOJ 继续水题,杭电2057 ,A+B again题目,关于进制输出的格式小技巧
- 【杭电oj】2057 - A + B Again(16进制输入输出)
- 杭电 acm 2057 A+B Again
- 杭电2057A + BAgain
- 杭电ACM 2057 A + B Again
- 【杭电】[2057]A + B Again
- 杭电ACM 2057 A + B Again
- 杭电ACM HDU 2674 N!Again
- HDU 2057 A + B Again
- 【KMP】hdu1867(A + B for you again) 杭电java a题真坑
- 杭电doing homework again
- 【最短路+dijkstra+spfa】杭电 hdu 2722 Here We Go(relians) Again
- 【杭电】[1702]ACboy needs your help again!
- 杭电 2057 (关于十六进制的输入输出)
- 【杭电1789】Doing Homework again
- 杭电ACM 2031,2057 进制转化问题