算法训练 s01串
时间限制:1.0s 内存限制:256.0MB
问题描述
s01串初始为"0"
按以下方式变换
0变1,1变01
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
主要的递归思想:
n串 等于 n-1串 的s01串
public static String f(int n) {
if(n==0) return "0";
return f_01string(f(n-1));
}
以下为本题的全部代码:
import java.util.Scanner;
public class Main {
//f_01string()方法 表示 按照题目要求 求一个字符串的反串
public static String f_01string(String str) {
String s="";
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)=='0')
s=s+'1';
if(str.charAt(i)=='1')
s=s+"01";
}
return s;
}
//此方法 利用递归 表示n次变换后s01串
//递归关系:n串 等于 n-1串 的s01串
//出口:当n=0时 ,初始化为0
public static String f(int n) {
if(n==0) return "0";
return f_01string(f(n-1));
}
//主方法
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(f(n));
}
}
不对之处请多多指教