所以這個函數如何工作是如果n2是n1的置換,它假設返回1. n2是n1的置換,如果它可以形成的話通過重新排列n1的數字。 (I.E.27654是743526的置換)。請解釋這個置換算法是如何工作的以及這個迴文算法是如何工作的
我不明白髮生了什麼事如果有人可以逐行解釋我會很感激,謝謝。
int is_permutation_division (unsigned long n1, unsigned long n2)
{
int a[10] = {0,0,0,0,0,0,0,0,0,0};
size_t i;
while (n1 != 0)
{
a[n1 % 10]++; // Edit: little syntax error
n1 /= 10;
}
while (n2 != 0)
{
a[n2 %10]--;
n2 /= 10;
}
for (i=0; i<10; i++)
{
if (a[i] != 0)
{
return 0;
}
}
return 1;
}
這個下一個函數測試一個字符串是否是迴文。一個詞是迴文,如果它的拼寫向後相同(即賽車rac ecar)
我有一條關於我評論過的一條線的問題。我只想知道它的j-1是否因爲你不想處理空字符
int is_palindrome(const char s[])
{
size_t i,j;
for (i=0; j<strlen(s); i<j; i++; j--)
{
if(s[i] != s[j-1]) /*is it j-1 because you don't want to check the null character? */
{
return 0;
}
}
return 1;
}
是的,它因爲你不想檢查空字符。 – Wazaaaap
我認爲第一個應該是']而不是''' – Wazaaaap
是的,你是對的謝謝 – noname