1. 程式人生 > 實用技巧 >使用Dev Tools檢視App的包名和所有Activity

使用Dev Tools檢視App的包名和所有Activity

第一次手寫高精度,調了1w遍

string 和 char陣列是真的讓人頭疼。感覺用好這倆玩意必須狂補計算機導論。一開始我有點rz,非要把每一位計算結果存在字串裡,出了10w個bug——包括但不限於亂碼、string型別變數的讀寫、string型別函式返回空串、指標無故消失

我這樣的rz只配用int陣列儲存每一位計算結果。(u1s1,正解應該是這樣,而不是存在字串裡= =)

喵的。

(p.s.別忘了考慮由於進位,計算結果的長度可能是max(len1,len2)+1)

#include<iostream>
#include<cstdio>
#include<cstring>
using
namespace std; char a[5005],b[5005]; int num1[5005],num2[5005]; int ans[5005]; int main() { cin>>a>>b; int temp=0; int len1=strlen(a),len2=strlen(b); for(int i=0;i<len1;i++) num1[len1-1-i]=a[i]-'0'; for(int i=0;i<len2;i++) num2[len2-1-i]=b[i]-'0'; if(len1<len2) { swap(num1,num2); swap(len1,len2); }
for(int i=len2;i<len1;i++) num2[i]=0; if(num1[0]+num2[0]>=10) { temp=1; ans[0]=num1[0]+num2[0]-10; } else if(num1[0]+num2[0]<10) ans[0]=num1[0]+num2[0]; for(int i=1;i<len1;i++) { if(num1[i]+num2[i]+temp>=10) { ans[i]
=num1[i]+num2[i]+temp-10; temp=1; } else if(num1[i]+num2[i]+temp<10) { ans[i]=num1[i]+num2[i]+temp; temp=0; } } int ll=len1; if(temp==1) {ans[len1]=1;ll=len1+1;} for(int i=ll-1;i>=0;i--) cout<<ans[i]; return 0; }
View Code