算法训练 s01串
时间限制:1.0s 内存限制:256.0MB
问题描述
s01串初始为”0”
按以下方式变换
0变1,1变01
输入格式
1个整数(0~19)
输出格式
n次变换后s01串
样例输入
3
样例输出
101
数据规模和约定
0~19
示例代码[Java]:
import java.util.Scanner; public class Main {
static StringBuffer sb = new StringBuffer();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); if(n == 0){
System.out.println("0");
}else{
f(n , "0");
}
System.out.println(sb);
} private static void f(int n, String s) {
String str=""; if( n < 0)
return;
n--;
for(int i = 0 ; i < s.length() ; i++){
str = s.substring(i , i+1);
if(str.equals("0")){
str = "1";
}else if(str.equals("1")){
str = "01";
} f( n , str); if(n == 0 ){
sb.append(str);
}
}
}
}
示例代码[c++]:
#include<iostream>
#include<string.h>
using namespace std; void f(int n, string s)
{
string str = "";
if(n < )
{
return ;
} n--; for(int i = ; i < s.size(); i++)
{
if(s[i] == '')
{
str += "";
}
else
{
str += "";
}
} f(n,str); if(n == )
{
cout << str;
}
} int main()
{
int n;
cin >> n; if (n == )
{
cout << "";
}
else
{
f(n, "");
} return ;
}
示例代码[c++]:
#include <iostream>
#include <string>
using namespace std; int main()
{
int n;
cin >> n;
string s = "";
while(n--) {
for(int i = ; i < s.length(); i++)
{
if(s[i] == '')
{
s[i] = '';
}
else
{
s.insert(i, "");
i = i+;
}
}
}
cout << s;
return ;
}