两种方法;
1.循环:
package exec;
import java.util.Scanner;
/**
问题描述
s01串初始为"0"
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
* @author Vivinia
*
* 2018年2月2日
*/
public class StudentInfo {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);;
int n=input.nextInt();
input.close();
String s1="0",s2="";
for(int i=0;i<n;i++) {
for(int j=0;j<s1.length();j++) {
if(s1.charAt(j)=='0')
s2+="1";
else
s2+="01";
}
s1=s2;
s2="";
}
System.out.println(s1);
}
}
2.递归:
package exec;
import java.util.Scanner;
/**
问题描述
s01串初始为"0"
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
* @author Vivinia
*
* 2018年2月2日
*/
public class StudentInfo {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);;
int n=input.nextInt();
input.close();
System.out.println(digui(n));
}
private static String digui(int n) {
if(n==0)
return "0";
else if(n==1)
return "1";
else
return digui(n-1)+digui(n-2);
}
}
一开始提交n=18和n=19出错,eclipse运行也确实不显示,一直以为是长度超过String范围的事,从网上找了N多代码也都这个问题,很纳闷,到了晚上才发现,不显示是eclipse的原因,在空白处复制一下到别的地方粘贴,就会显示,然后一提交,稀里糊涂的通过了,坑爹的蓝桥杯!