題意:
given two binary strings, return their sum (also a binary string).
for example,
a = "11"
b = "1"
return "100".
思路:
思路:對於兩個string a,b從後往前取值,若取值為空則賦值為0.設定進製符號flag;
若a[i]+b[i]+flag == 3 則 c[i]=1 flag =1
;若a[i]+b[i]+flag == 2 則 c[i]=0 flag =1;
若a[i]+b[i]+flag == 1 則 c[i]=1 flag =0
;若a[i]+b[i]+flag == 0 則 c[i]=0 flag =0;
**如下:
string addbinary(string a, string b)
else
if(lenastring temp(lenc-lena,'0');
a=temp+a;
}// 判斷是否需要進製
for(int i=lenc-1;i>=0;--i)
else
if(a[i]-'0'+b[i]-'0'+flag==2)
else
if(a[i]-'0'+b[i]-'0'+flag==1)
else
if(a[i]-'0'+b[i]-'0'+flag==0)
}//如果溢位的話
if((a[0]-'0'+b[0]-'0'+flag)>=2)
return c;
}
本題,使得對於字串的操作更加熟練。
對於再字串的前、後新增字元的時候,可以將字元轉換成字串,再使用」+」號,新增上去:
if((a[0]-'0'+b[0]-'0'+flag)>=2)
兩個字串相加 非負數
題目 兩個字串相加 非負數 分析 從兩個字串的末尾位對應為開始相加,每次都是對應為加上上一次的進製 第一次是0,之後每滿十,進製位置1 需要注意的是,當短串完了不能之間將長串直接拷下來,原因是可能有極端的情況一直需要進製 如9999 1 另外,最後還要判斷是否有進製。string add strin...
連線兩個字串
include include void main char lianjie char a 30 char b 30 原型 extern char strcat char dest,char src 用法 include 功能 把src所指字串新增到dest結尾處 覆蓋dest結尾處的 0 並新增 ...
交換兩個字串
交換兩個字串,原來的字串分別為 學生 和 好 字串輸出顯示為 學生好 交換後輸出顯示為 好學生 include using namespace std int main char c1 5 學生 char c2 3 好 char m,n,t m c1 n c2 cout 交換前 m n n t co...