zoukankan      html  css  js  c++  java
  • HDU 2057 A + B Again

    解题报告:

    两个十六进制的数的加法,十六进制的数可以直接输入和输出,但仅限于非负数,输入输出的格式控制符是%X,但这题数据范围较大,要用到__int64,所以格式控制符应该用

    %I64X,另外当结果为负数时处理一下就可以了。

     1 #include<cstdio>        
     2 int main() {
     3     char str1[1000],str2[1000];
     4     __int64 A,B,sum;
     5     while(scanf("%I64X%I64X",&A,&B)!=EOF) {
     6         A+=B;
     7         if(A<0) {
     8             printf("-");
     9             A*=(-1);
    10         }
    11          printf("%I64X\n",A);
    12     }
    13     return 0;
    14 }
    15 
    16 
    17 
    18 /*#include<cstdio>
    19 #include<cstring>
    20 #include<cmath>
    21 char ch[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    22 int change1(char *str) {
    23     int len = strlen(str),num=0;
    24     int quan=1;
    25     for(int i = len-1;i>=0;--i) {
    26         if(str[i]>='0'&&str[i]<='9')
    27         num+=(str[i]-'0')*quan;
    28         else if(str[i]>='A'&&str[i]<='F')
    29         num+=(str[i]-'A'+10)*quan;
    30         quan*=16;
    31     }
    32     if(str[0]=='-')
    33     num=num*(-1);
    34     return num;
    35 }
    36 void change2(__int64 sum) {
    37     if(sum<0) {
    38         printf("-");
    39         sum*=(-1);
    40     }
    41     char str[1000],str4[1000];
    42     int z=0;
    43     if(sum==0)
    44     str[z++]='0';
    45     while(sum) {
    46         str[z++]=ch[sum%16];
    47         sum/=16;
    48     }
    49     str[z]=NULL;
    50     int len=strlen(str);
    51     for(int i=0;i<len;++i)
    52     str4[i]=str[len-i-1];
    53     str4[len]=NULL;
    54     printf("%s\n",str4);
    55 }*/
    View Code
  • 相关阅读:
    filter与compress
    groupby,分组
    按照属性排序,使用lambda与itemgetter,attrgetter
    python3-cookbook电子书在线文档
    numpy中的向量操作
    向量Vector
    defaultdict与OrderedDict
    heapq堆队列
    (转载)SVM-基础(一)
    决策树-剪枝算法(二)
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3107008.html
Copyright © 2011-2022 走看看