C語言 練習2 8

2021-09-25 06:10:22 字數 634 閱讀 7052

練習2-1:編寫乙個函式rightrot(x,n),該函式返回將x迴圈右移(即從最右端移除的位將從最左端移入)n(二進位制)位後所得到的值。

第一種解法思路:每次將【x最右端右移1位】與【該位左移到最左端】  進行【或運算】 ,這樣進行n次迴圈即可。

實現**如下:

#includevoid

main()

/*rightrot: rotate x to the right by n position

*/unsigned rightrot(unsigned x,

intn)

returnx;}

int wordlength(void

)

第二種解法思路:判斷 x 中最右端位是1還是0,是1就進行運算,若是0 ,直接右移即可。

實現**如下:

#includevoid

main()

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歲。請問第五個人多大?程式分析 利用遞迴的方法,遞迴分為回推和遞推兩個階段。要想知道第五個人歲數,需知道第四...