蓝桥杯 算法训练 ALGO-139 s01串

算法训练 s01串 
时间限制:1.0s 内存限制:256.0MB 
问题描述 
  s01串初始为”0” 
  按以下方式变换 
  0变1,1变01 
输入格式 
  1个整数(0~19) 
输出格式 
  n次变换后s01串 
样例输入 

样例输出 
101 
数据规模和约定 
  0~19

示例代码[Java]:

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     static StringBuffer sb = new StringBuffer(); 
 5     public static void main(String[] args) {
 6         Scanner sc = new Scanner(System.in);
 7         int n = sc.nextInt();
 8 
 9         if(n == 0){
10             System.out.println("0");
11         }else{
12             f(n , "0");
13         }
14         System.out.println(sb);
15     }
16 
17     private static void f(int n, String s) {
18         String str="";
19 
20         if( n < 0)
21             return;
22         n--;
23         for(int i = 0 ; i < s.length() ; i++){
24             str = s.substring(i , i+1);
25             if(str.equals("0")){
26                 str = "1";
27             }else if(str.equals("1")){
28                 str = "01";
29             }
30 
31             f( n , str);
32 
33             if(n == 0 ){
34                 sb.append(str);
35             }
36         }
37     }
38 }

 

示例代码[c++]:

 1 #include<iostream>
 2 #include<string.h>
 3 using namespace std;
 4 
 5 
 6 void f(int n, string s)
 7 {
 8     string str = "";
 9     if(n < 0)
10     {
11         return ;
12     }
13     
14     n--;
15     
16     for(int i = 0; i < s.size(); i++)
17     {
18         if(s[i] == '0')
19         {
20             str += "1";
21         }
22         else
23         {
24             str += "01";
25         }
26     }
27     
28     f(n,str);
29     
30     if(n == 0)
31     {
32         cout << str;
33     }
34 }
35 
36 int main()
37 {
38     int n;
39     cin >> n;
40     
41     if (n == 0) 
42     {
43         cout << "0";
44     }
45     else
46     {
47         f(n, "0");
48     }
49     
50     return 0;
51 } 

 

示例代码[c++]:

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 int main() 
 6 {
 7     int n;
 8     cin >> n;
 9     string s = "0";
10     while(n--) {
11         for(int i = 0; i < s.length(); i++) 
12         {
13             if(s[i] == '0') 
14             {
15                 s[i] = '1';
16             } 
17             else 
18             {
19                 s.insert(i, "0");
20                 i = i+1;
21             }
22         }
23     }
24     cout << s;
25     return 0;
26 }

 

posted @ 2017-03-08 21:38  C3Stones  阅读(381)  评论(0编辑  收藏  举报