#include <stdio.h> #include<stdlib.h> #include <string.h> char*
addBinary(char* a, char* b) { int n1,n2,i,j,k,fab=0,g; char* c,*d;
n1=strlen(a); n2=strlen(b); if(n1>=n2) { g=k=n1-1; d=(char*)malloc(k+2);
strcpy(d,a); } else if(n1<n2) { g=k=n2-1; d=(char*)malloc(k+1); strcpy(d,b); }
c=(char*)malloc(k+2); for(i=n1-1,j=n2-1;i>=0&&j>=0;i--,j--,k--) {
if((a[i]-'0')+(b[j]-'0')+fab==0||(a[i]-'0')+(b[j]-'0')+fab==1) {
c[k]=a[i]+b[j]+fab-'0'; fab=0; } else if((a[i]-'0')+(b[j]-'0')+fab==2) {
c[k]='0'; fab=1; } else if((a[i]-'0')+(b[j]-'0')+fab==3) { c[k]='1'; fab=1; } }
for(;k>=0;k--) { c[k]=d[k]+fab; if(c[k]=='2') { c[k]='0'; fab=1; } else fab=0;
} if(fab==1) { for(i=g;i>=0;i--) { c[i+1]=c[i]; } c[0]='1'; }
for(i=0;i<=g+1;i++) { if(c[i]!='0'&&c[i]!='1') { c[i]='\0'; } } return c; } int
main() { char a[]="10011",b[]="10000011"; printf("%s",addBinary(a,b)); return
0; } </textarea>
测试用例最后一个测试的时候是对的,提交就溢出了

技术
©2019-2020 Toolsou All rights reserved,
Unity-Demo实例之 ✨ 实现UI-背包装备拖拽功能计算机网络---计算机网络基本概念(协议、体系)某东14薪变16薪,是诚意还是套路?让人意想不到的Python之樱花树(turtle库的华丽样式)java四大函数式接口(重点,简单)06【若依框架解读】数据范围过滤--太牛了Unity3D之UGUI基础--画布的三种模式os模块的简单使用html写樱花树,写樱花树的作文