java:s01串
题目
问题描述
s01串初始为"0"
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
例如3
0变成1
1变成01
01变成101
就是之前的振兴中华,有两个步骤可以变
代码
import java.util.Scanner;
public class s01串 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();//输入n
String str="";
str=change(n,str);
StringBuffer strb=new StringBuffer(str);
System.out.println(strb.reverse());
}
public static String change(int n,String str){
if(n==0)
return str="0";
if(n==1)
return str="1";
return change(n-1,str)+change(n-2,str);
}
}
这个好妙啊
首先先把str初始为0,之后在定义一个字符,下面的操作就是如果是0就变为1,如果是1就变成01,当有3次以上的时候就是每位的数字进行变化,并且a都开始加上原数,并一直初始a字符,str就保存每次的值,而且都是从开始n有几次就执行几次。
import java.util.Scanner;
public class s01串1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String str="0";
while(n>0){
String a="";
for(int i=0;i<str.length();i++){
if(str.charAt(i)=='0')
a+="1";
else if(str.charAt(i)=='1')
a+="01";
}
str=a;
n--;
}
System.out.println(str);
}
}