-
当n=2时, 输出 3;
当n=3时, 输出 5;
当n=4时, 输出 8; #### 分析: 当n=4时,如 0101 符合条件,
当第一个位置是0时,还剩3个位置 ,与n=3时个数相等; 符合条件的为5个;
当第一个位置是1时,第二个位置只能是0;还剩两个位置,与n=2时个数相等 符合条件的为3个;
由此得出 f(n)=f(n-1)+f(n-2);
C/C++:#include<stdio.h>
int main()
{
int t,n,a,b,i;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n==)
printf("3\n");
else if(n==)
printf("5\n");
else
{
a=;b=;
for(i=;i<=n;i++)
{
b=a+b;
a=b-a;
}
printf("%d\n",b);
}
}
return ;
}java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
while(t-->0){
int n=sc.nextInt();
if(n==2)
System.out.println(3);
else if(n==3)
System.out.println(5);
else{
int a=3,b=5;
for(int i=4;i<=n;i++){
b=b+a;
a=b-a;
}
System.out.println(b);
}
}
}
}