1 条题解
-
0
C :
#include<stdio.h> #include<string.h> void main() { int j; unsigned short i; char ch[102],ch1[103],ch2[103]; while(gets(ch)!=NULL) { for(i=0;i<103;i++) ch1[i]=ch2[i]='0'; for(i=0;i<strlen(ch);i++) { ch1[i]=ch[strlen(ch)-1-i]; if(ch1[i]>'9')ch1[i]=ch1[i]-'a'+'0'+10; } ch1[i]='\0'; gets(ch); for(i=0;i<strlen(ch);i++) { ch2[i]=ch[strlen(ch)-1-i]; if(ch2[i]>'9')ch2[i]=ch2[i]-'a'+'0'+10; } ch2[i]='\0'; i=strlen(ch1)>strlen(ch2)?strlen(ch1):strlen(ch2); ch1[strlen(ch1)]='0';ch2[strlen(ch2)]='0'; for(j=0;j<i;j++) { ch2[j]=ch2[j]+ch1[j]-'0'; while(ch2[j]>'0'+19) { ch2[j+1]+=1; ch2[j]-=20; } } if(ch2[i]!='0')j=i;else j=i-1; for(j;j>=0;j--) { if(ch2[j]>'9')printf("%c",ch2[j]-'9'+'a'-1); else printf("%c",ch2[j]); } printf("\n"); } }
C++ :
#include <stdio.h> #include <string.h> char h[21] = "0123456789abcdefghij"; int w[200]; void init() { for(int i = 0 ; i < 21 ; i ++) w[h[i]] = i; } int main() { init(); char a[200], b[200], c[200]; while(scanf("%s%s",a,b) != EOF) { int lena = strlen(a) - 1; int lenb = strlen(b) - 1; int dig = 0, k = 0, i, j; for(i = lena, j = lenb ; i >= 0 && j >= 0 ; i --, j --) { c[k++] = h[(w[a[i]] + w[b[j]] + dig) % 20]; dig = (w[a[i]] + w[b[j]] + dig) / 20; } while(i >= 0) { c[k++] = h[(w[a[i]] + dig) % 20]; dig = (w[a[i]] + dig) / 20; i--; } while(j >= 0) { c[k++] = h[(w[b[j]] + dig) % 20]; dig = (w[b[j]] + dig) / 20; j--; } if(dig != 0) c[k++] = h[dig]; for(i = k - 1 ; i >= 0 ; i --) printf("%c",c[i]); printf("\n"); } return 0; }
- 1
信息
- ID
- 3351
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者