1661: 完善程序(好数)

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:32 Solved:5

Description

(好数)对于一个正整数X,如果把X化成二进制数后,如果X的二进制数至少有三个连续的1或者至少有3个连续的0(不能有前导0),那么X就是“好数”。例如8就是“好数”,因为8对应的二进制数是1000,有三个连续的0。整数15也是“好数”,因为15对应的二进制数是1111,也有三个连续的1。整数27就不是“好数”,因为27对应的二进制数是11011,既没有连续的三个1也没有连续三个0。
现在给出两个整数Low、UP,求Low和UP范围内有多少个“好数”。(0 <= Low <= UP <= 2147483647)

代码如下:

填入①处的代码是(  )
A. F[i-1][1][0]+F[i-1][1][1]        B. F[i-1][0][1]+F[i-1][1][1]        C. F[i][1][0]+F[i][1][1]        D. F[i][0][1]+F[i][1][1]

填入②的代码是(  ) 

A.len++        B. Ans++        C. F[0][0][0]        D. F[1][0][0]

填入③处的代码是(  )
A. sm[i]==r        B. sm[i]==’0’        C. sm[i]==’1’        D. sm[i]==sm[k]

填入④处的代码是(  )
A. F[len-k][sm[k]-48][0]        B. F[len-k][sm[k-1]-48][0]        C. F[len-k+1][sm[k]-48][0]        D. F[len-k+1][sm[k-1]-48][0]

填入⑤处的代码是(  )
A. sm[i]==r        B. sm[i]==’0’        C. sm[i]==’1’        D. sm[i]==sm[k]

Sample Input Copy


Sample Output Copy


HINT

选择的答案,依照下列程序填入:

#include <cstdio>

int main(){

int n=0; scanf("%d",&n);

switch(n){

/********************************************

* 答题区
*   请将答案写在以下的printf函数的双引号中
*   例如: case 1:  printf("A"); break;
*               ^第一题     ^答案为A
****************************************/      
case 1:     printf("A");  break;
case 2:     printf("D");  break;
case 3:     printf("A");  break;
case 4:     printf("B");  break;
case 5:     printf("C");  break;
//*****************************************
// 答题结束
//****************************************     

} return 0;

}