题意
给出一个数n,求n位二进制中有多少个数不包含相邻的1
解题思路
采用插空法
1. 对于n位二进制数,不包含相邻的1时,1的个数必定不大于0的个数。
2. 假设0的个数为a,1的个数为b,(a+b=n,且a>=b)则产生a+1个空位来放置1。
代码
注意:若用long long存储计算结果会WA
#include <stdio.h>
#include <stdlib.h>
double sum,a,b;
int main()
{
int n,t;
int i,j,k,l;
scanf("%d",&t);
for(i=1;i<=t;i++){
scanf("%d",&n);