練習2-1:編寫乙個函式rightrot(x,n),該函式返回將x迴圈右移(即從最右端移除的位將從最左端移入)n(二進位制)位後所得到的值。
第一種解法思路:每次將【x最右端右移1位】與【該位左移到最左端】 進行【或運算】 ,這樣進行n次迴圈即可。
實現**如下:
#includevoidmain()
/*rightrot: rotate x to the right by n position
*/unsigned rightrot(unsigned x,
intn)
returnx;}
int wordlength(void
)
第二種解法思路:判斷 x 中最右端位是1還是0,是1就進行運算,若是0 ,直接右移即可。
實現**如下:
#includevoidmain()
unsigned rightrot(unsigned x, unsigned n)
else
n--;
}return
x;}
《C程式語言》 練習2 8
練習 2 8 編寫乙個函式rightrot x,n 該函式返回將x迴圈右移 即從最右端移出的位將從最左端移入 n 二進位制 位後所得到的值。write a functionrightrot x,n that returns the value of the integerxrotated to th...
C語言程式設計練習28 大數取模
題目描述 現給你兩個正整數a和b,請你計算a mod b。為了使問題簡單,保證b小於100000。輸入 輸入包含多組測試資料。每行輸入包含兩個正整數a和b。a的長度不超過1000,並且0輸出 對於每乙個測試樣例,輸出a mod b。樣例輸入 copy 2 3 12 7 152455856554521...
C 實戰練習題目28
題目 有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第乙個人大兩歲。最後問第乙個人,他說是10歲。請問第五個人多大?程式分析 利用遞迴的方法,遞迴分為回推和遞推兩個階段。要想知道第五個人歲數,需知道第四...