zcmu-1411
1411: 喜聞樂見的a+b
Time Limit:?1 Sec??Memory Limit:?128 MBSubmit:?229??Solved:?90
[Submit][Status][Web Board]
Description
喜聞樂見的a+b來了,當然二進制,八進制,十進制什么的估計你們也懶得寫了,來個20進制的a+b
Input
? ? ? ? ?給出多組a和b,每個數字一行
數字由0~9和小寫字母a~j(10~19)
給出的長度不超過100
Output
每組數據輸出a+b的和。
Sample Input
1234567890abcdefghij99999jjjjj9999900001Sample Output
bdfi02467jiiiij00000HINT
Source
好氣的一道題,起先是反轉字符,然后相加,后面再反轉又輸出,但是不知道為什么wa好多次,改了又改,后面刪了從新寫,有int數組記錄后面就對了。 下面有改了有一個我改了又改的wa代碼 ac代碼在最下面;歡迎指出我那道wa錯在哪,求大佬解釋。wa代碼: #include<cstdio> #include<cstring> #include<algorithm> using namespace std;int main() {char s[22]={"0123456789abcdefghij"};char a[160],b[160],ss[160];while(~scanf("%s",a)){scanf("%s",b);int x,y;int go=0;int la=strlen(a);int lb=strlen(b);reverse(a,a+la);reverse(b,b+lb);memset(ss,'0',sizeof(ss));for(int i=la; i<150; i++)a[i]='0';a[150]='\n';for(int i=lb; i<150; i++)b[i]='0';b[150]='\n';for(int i=0; i<150; i++){if(a[i]>='0'&&a[i]<='9')x=a[i]-'0';else x=a[i]-'a'+10;if(b[i]>='0'&&b[i]<='9')y=b[i]-'0';else y=b[i]-'a'+10;int z=x+y+go;//printf("%d\n",y);if(z<20){ss[i]=s[z];go=0;}else {ss[i]=s[z-20];go=1;}}ss[150]='\n';int flag=0,i;for(i=149; i>=0; i--){if(ss[i]!='0')break;}for(int j=i; j>=0; j--)printf("%c",ss[j]);printf("\n");}return 0; }
ac代碼: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main () {char a1[10000],b1[10000];int a[10000],b[10000],c[10000];int k,m,n,x,ans,flag;while(~scanf("%s",a1)){memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));scanf("%s",b1);int len1=strlen(a1),len2=strlen(b1);for(int i=len1-1;i>=0;i--){if(a1[i]>='0'&&a1[i]<='9')a[len1-1-i]=a1[i]-'0';else if(a1[i]>='a'&&a1[i]<='j')a[len1-1-i]=a1[i]-'a'+10;}for(int i=len2-1;i>=0;i--){if(b1[i]>='0'&&b1[i]<='9')b[len2-1-i]=b1[i]-'0';else if(b1[i]>='a'&&b1[i]<='j')b[len2-1-i]=b1[i]-'a'+10;}int len=len1;if(len<len2){len=len2;}for(int i=0;i<len;i++){c[i]=a[i]+b[i]+c[i];if(c[i]>=20){c[i]=c[i]-20;c[i+1]++;}}int flag=max(len1,len2)+2;while(c[flag]==0&&flag>=0)flag--;if(flag<0)printf("0\n");else{for(int i=flag;i>=0;i--){if(c[i]<=9)printf("%d",c[i]);elseprintf("%c",c[i]-10+'a');}printf("\n");}}return 0; }
總結
- 上一篇: 数据结构链表知识入门
- 下一篇: ElasticSearch 复合查询