nyoj 252 01串 动态规划( java)

时间:2023-03-09 16:30:08
nyoj 252  01串  动态规划( java)

当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);
}
}
}
}