我在採訪中被要求用位運算符交換整數中的最後一位數字和第一位數字。嘗試了很多,但我找不到解決方案。我怎樣才能做到這一點?使用按位運算符交換整數中的第一個數字和最後一個數字
回答
一個平凡的解決方案:
def swap_digit(n):
x = str(n)
if len(x) < 2:
return x
return int(x[-1] + x[1:-1] + x[0])
編輯:添加一個快速和骯髒℃溶液來
#include <stdio.h>
#include <string.h>
int main()
{
int n = 123456789;
char buf[100];
int r = snprintf(buf, sizeof(buf), "%d", n);
char t = buf[0];
buf[0] = buf[r-1];
buf[r-1] = t;
int swap;
sscanf(buf, "%d", &swap);
printf("n = %d, swap = %d\n", n, swap);
return 0;
}
def swap(i):
s = list(str(i))
s[0], s[-1] = s[-1], s[0]
i = int(''.join(s))
return i
print swap(123456789) # 923456781
使用int digits = log10(x)
得到的位數。
使用int first = x/pow(10,digits)
獲取第一位數字。
使用int last = x % 10
得到最後一位數字。
把它放在一起,你有
int swapped = x + (last - first) * pow(10,digits) + (first - last)
令人驚歎! +1的想象力。 –
在我的系統上失敗999999999999999。 –
@Dietrich Epp:是的,因爲'999999999999999> 2^31-1'對於int來說太大了。我假設(也許很糟糕,但基於對問題的評論)「x」是作爲「int」給出的。 – PengOne
- 1. C++刪除數字的第一個和最後一個數字
- 2. 交換數組中的第一個和最後一個值(JAVA)
- 3. 在Java中交換字符串的第一個和最後一個字母?
- 4. 字符串的第一個字符和最後一個字符
- 5. 使用Java計算第一個和最後一個數字之間的所有數字的平均數
- 6. 如何將最大數字與數組中的最後一個數字交換?
- 7. 查找任意數字的第一個和最後一個數字的總和
- 8. 字符串中最後一個數字
- 9. 如何獲取PHP中第一個和最後一個數字的數字?
- 10. 用一個字節中的第二個數字替換第一個數字
- 11. 如何使用按位運算符從另一個數字中刪除一個數字?
- 12. jQuery給定字符的第一個和最後一個字符
- 13. BASH - 簡單的第一個字符和最後一個字符
- 14. 在字符串的第一個和最後一個位置插入字符
- 15. Python找到字符串中最後一個數字的位置
- 16. 正則表達式用連字符和數字替換最後一位數字
- 17. 解析數組數據並刪除第一個和最後一個字符
- 18. 整數窗口手機的第一個和最後兩個數字
- 19. 去掉字符串中的最後一個字符和第一個字符
- 20. 刪除字符串中的最後一個字符和第一個字符
- 21. 交換一個數組中的數字
- 22. 轉換一個字符串數組,一個整數數組
- 23. 在Java中切換字符串的第一個和最後一個字母?
- 24. 替換字符串數組中的最後一個字母Javascript
- 25. 如何用此字符串中的兩個不同字符替換第一個和最後一個字符「{0}」
- 26. 用無符號整數中的另一個字節替換第n個字節
- 27. 替換整數的最後一位數字
- 28. 用其第一個數字替換4位數字
- 29. C#在整數/字符串中搜索第一個數字
- 30. 從短整數開始拼接第一個和最後3個數字?
你爲什麼使其接近? –
這個問題有什麼問題 –
自由使用'%10'會讓你去你想去的地方。至於「有什麼問題」,大多數SO用戶更喜歡你展示解決它的企圖,並詢問你卡在哪裏。 –