2016-04-15 39 views
-4

假設我們給出的輸入數字爲1234,那麼在正確的循環移位後,我們應該得到4123作爲輸出。 我試着用MOD操作符解決它,但它沒有工作。如何在不使用任何數據結構的情況下正確循環移位數字?

+4

無代碼,沒有實際的輸出 - 你怎麼能指望我們找到代碼中的錯誤? – MSalters

+3

也許你的問題應該顯示你的嘗試,你預期會發生什麼,實際發生了什麼,並最終提出一個問題,你不瞭解發生了什麼和你的預期之間的區別。 –

+1

建議的重複似乎是關於二進制移位,而這個問題似乎是基於10的移位,所以我不認爲重複的答案有很大的用處,我認爲這不是一個合適的重複。也就是說,我投票結束這個問題,因爲缺乏mcve,因此我沒有投票決定在問題得到改善之前重新開放。 – user2079303

回答

1

你的任務可以解決這樣說:

unsigned int CSWR(unsigned int i) { 
    unsigned int rem = i % 10; 
    unsigned int temp = i/10; 
    i = temp; 
    if (!i) 
     return rem; 

    for(rem *=10;i/=10;rem *= 10); 
    return rem + temp; 
} 
+0

它工作@Anatoly – Gaurav

1

或者這樣說:

int a = 1234; 
int result = (a/10) + (a%10)*pow(10,(int)log10(a)); 
相關問題