征战蓝桥 —— 2016年第七届 —— C/C++A组第5题——消除尾一
生活随笔
收集整理的這篇文章主要介紹了
征战蓝桥 —— 2016年第七届 —— C/C++A组第5题——消除尾一
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
下面的代碼把一個整數的二進制表示的最右邊的連續的1全部變成0
如果最后一位是0,則原數字保持不變。
如果采用代碼中的測試數據,應該輸出:
00000000000000000000000001100111 00000000000000000000000001100000
00000000000000000000000000001100 00000000000000000000000000001100
請仔細閱讀程序,填寫劃線部分缺少的代碼。
#include <stdio.h>void f(int x) {int i;for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1);printf(" ");x = _______________________;for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1);printf("\n"); }int main() {f(103);f(12);return 0; }注意:只填寫缺少的內容,不要書寫任何題面已有代碼或說明性文字。
代碼
#include <stdio.h>void f(int x) {int i;for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1);printf(" ");x = x&(x+1);for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1);printf("\n"); }int main() {f(103);f(12);return 0; }總結
以上是生活随笔為你收集整理的征战蓝桥 —— 2016年第七届 —— C/C++A组第5题——消除尾一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 征战蓝桥 —— 2016年第七届 ——
- 下一篇: 2016年第七届蓝桥杯 - 省赛 - C