01字串

本文介绍了一种计算机程序设计任务,即输出所有可能的5位01串,并确保这些串按照从小到大的顺序排列。提供了三种不同的Java实现方法,包括通过位运算、直接转换为二进制字符串以及通过取余和除以2的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

输入格式

本试题没有输入。

输出格式

输出32行,按从小到大的顺序每行一个长度为5的01串。

样例输出

00000     
00001
00010
00011

<以下部分省略>

方法一:

public class Main {
	public static void main(String[] args){
		int n1,n2,n3,n4,n5;
		int i=32;
		for(i=0;i<32;i++)
		{
			if(i%2==0)
				n1=0;
			else
				n1=1;
			if(i/2%2==0)
				n2=0;
			else
				n2=1;
			if(i/4%2==0)
				n3=0;
			else
				n3=1;
			if(i/8%2==0)
				n4=0;
			else
				n4=1;
			if(i/16%2==0)
				n5=0;
			else
				n5=1;
			 System.out.println(n5+""+n4+""+n3+""+n2+""+n1);
				
		}
	}

}

方法二

public class Main {
	public static void main(String[] args){
		for(int i=0;i<32;i++)
		{
			String str=Integer.toBinaryString(i);
			int d = Integer.parseInt(str);
			String tr=String.format("%05d",d);
			System.out.println(tr);
		}


方法三
public class Main {  
	  
	    public static void main(String[] args) {  
	        // Scanner cin = new Scanner(System.in);  
	        String[] n = new String[5];  
	        for (int i = 0; i < 32; i++) {  
	            int ii = i;  
	            for (int j = 0; j < 5; j++) {  
	                n[j]=ii%2+"";  
	                ii = ii / 2;  
	            }  
	            System.out.println(n[4]+n[3]+n[2]+n[1]+n[0]);  
	  
	        }  
	  
	    }  
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值