java:s01串

java:s01串

题目

问题描述
  s01串初始为"0"
  按以下方式变换
  01101
输入格式
  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 s011 {

	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);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值