s01串

解析: 题目有一点问题,漏了一句话"输入一个整数n"。字符串s01的初始内容是"0",要求出经过n次变幻后的字符串。每次变幻都是0变1,1变01.所以可以把一个字符串分解成一个字符数组,这样可以对数组里的每个字符进行单独转换,最后将数组里所有的字符加起来就是一个新的字符串。

package _4_9_test;

import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

/*s01串
 * 1、输入一个整数n,代表s01串变幻的次数
 * 2、s01串的初始是0
 * 3、每次变幻,s01串中的0变成1,1变成01
 * 可以使用数组和可变进行处理
 * 
 * 0
 * 1
 * 01
 * 101
 * 
 * */
public class SeventyFive {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scanner = new Scanner(System.in);

		int n = scanner.nextInt();

		StringBuffer stringBuffer = new StringBuffer("0");

		// 最外层循环是转换次数
		for (int i = 0; i < n; i++) {
			// 将string串转变成字符数组
			char s[] = stringBuffer.toString().toCharArray();
			// 清空stringBuffer
			stringBuffer.delete(0, stringBuffer.length());
			// 里面的循环是需要转换的字符个数
			for (int j = 0; j < s.length; j++) {
				if (s[j] == '0') {
					stringBuffer.append("1");
				} else if (s[j] == '1') {
					stringBuffer.append("01");
				}
			}

		}

		System.out.println(stringBuffer);

	}

}

posted @ 2020-04-09 16:52  西红柿里没有番茄  阅读(166)  评论(0编辑  收藏  举报