-1
當給定數字「n」及其基數「D」時,使用後面的函數計算其在D基數下的反轉數,然後轉換爲Decimal並返回。在C++函數中發生異常
問題是,方法1可以成功工作,而方法2總是會出現異常。有沒有人告訴我方法2有什麼問題?非常感謝。
int getrevn(int n, int D)
{
//-------method 1-------------------------//
int revn = 0;
while (n)
{
revn = revn * D + n % D;
n /= D;
}
return revn;
//------method 2-------------------------//
string s;
while (n)
{
s = char(n % D + '0') + s;
n /= D;
}
int rev = 0;
for (unsigned int i = s.size() - 1; i >= 0; i--)
rev = rev * D + s[i] - '0';
return rev;
}
什麼是例外?這很重要。 – Carcigenicate
在方法2中,'s'剛剛聲明,但未初始化,所以不能有'+ s'。 –
@EliSadoff:'string s;'未初始化? – IInspectable