java之不重复的三位数

java之不重复的三位数

问题描述:
* 0-9这10个数字可以组成多少不重复的3位数?
如图所示:
在这里插入图片描述

/**
 * 
 */
package javaLearn;

/**
 * @author Administrator
 *qq:1012885458
 */
public class 不重复的三位数 {
    
    
	/*

	 * */
	
	public static void main(String args[]) {
    
    
		
	long start=	System.currentTimeMillis();
				int count=0;
		//穷举法
		for(int i=1;i<=9;i++) {
    
      //9
			
			//第一位数
			for(int j=0;j<=9;j++) {
    
       //10
				if(i==j)  continue;
				for(int p=0;p<=9;p++) {
    
      //10
					if(j==p || i==p)  continue;
					int s=i*100+j*10+p;
//					System.out.println(s);
					 count++;
					 
				}
			}
		}
		System.out.printf("有%d多次不重复的三位数 \n",count);
		
		long end=	System.currentTimeMillis();
		System.out.println("运行的时间为:"+(end-start));
	}

}

如图所示:
在这里插入图片描述

/**
 * 
 */
package javaLearn;

/**
 * @author Administrator
 *qq:1012885458
 */
public class 不重复的三位数2 {
    
    
	public static void main(String[]args) {
    
    
		long start=	System.currentTimeMillis();
	int i ,a,b,c;
	int count=0;//计数器
	for(i=100;i<=999;i++) {
    
    
		//所有的3位数循环一遍//a代表百位上的数字//b代表十位上的数字//c代表个位上的数字
		a=i/100;
		b=i/10%10;
		c=i%10;
		if(a!=b&&a!=c&&b!=c) {
    
    
//			System.out.print(i+"");//输出数字,后面加空格
		count++;//每10个数字换行
			if(count%10==0)
			System.out.print("\n");
		}
		System.out.println("\n —共有"+count+"个这样的数字");//输出统计结果
		long end=	System.currentTimeMillis();
		System.out.println("运行的时间为:"+(end-start));
}
}
}

在这里有两种方案,一种一个for循环,一种3层嵌套循环,是都可以完成的,但是有个性能问题单循环时间是要小于嵌套循环的

猜你喜欢

转载自blog.csdn.net/weixin_42590083/article/details/112466600