zoukankan      html  css  js  c++  java
  • 算法学习——枚举之完美综合式

    算法描述

    要求

    1. 各个一位数不能是1
    2. 只能填写1~9的数字
    3. 方框里的数字不能重复

    算法思路

    1. 首先是将每个一位数和两位数都看成一个数,我们可以使用a,b,c,d,e,f六个数代替

    2. 设置for循环,枚举a,b,c,d,e,f这六个数

      a 范围2~9(因为是不允许各个一位数为1)

      b 范围2~9(同理)

      c 范围10~99

      d 范围10~99

      e 范围10~99

      f 范围2~9

      这里需要注意的是c和d的枚举,设置的时候有些巧妙,由于d是被除数,所以我们优先改变的应该是c,而且,由题目我们可以猜测出,这里的c和d应该是可以整除的,所以我们可以将c作为d的倍数增加

      for(d=10;d<=99;d++)

      for(c=d;c<=99;c=c+d)

    3. 乘方函数可以使用java中Math.pow函数

    4. 设置一个函数判断式子是否成立,成立则返回true,不成立则返回false

    5. 设置一个函数判断式子中的各个数是否包含0,是否重复,返回类型也是一个boolean类型

    6. 上述两个函数返回的数值均是true则可以判断a,b,c,d,e,f是满足要求的数字,打印出来(或者是使用整除和取余的方法一个个数的取出)

    算法实现

    int a,b,c,d,e,f;
    	for(a=2;a<=9;a++){
    		for(b=2;b<=9;b++){
    			for(d=10;d<=99;d++){
    				for(c=d;c<=99;c=c+d){
    					for(e=10;e<=99;e++){
    						for(f=2;f<=9;f++){
    							if(jisuan(a, b, c, d, e, f)){
    								if(isChongfu(a, b, c, d, e, f)){
    									System.out.println(a+","+b+","+c+","+d+","+e+","+f);
    								}
    							}
    						}
    					}
    				}
    			}
    		}
    	}
    }
    public static boolean jisuan(int a,int b,int c,int d,int e,int f){
    	return (Math.pow(a, b) + c/d )==e*f;
    }
    public static boolean isChongfu(int a,int b,int c,int d,int e,int f){
    	int[] flag = new int[9];
    	flag[0]=a;
    	flag[1]=b;
    	flag[2]=c/10;
    	flag[3]=c%10;
    	flag[4]=d/10;
    	flag[5]=d%10;
    	flag[6]=e/10;
    	flag[7]=e%10;
    	flag[8]=f;
    	for(int i=0;i<flag.length;i++){
    		if(flag[i]==0){
    			return false;
    		}
    	}
    	for(int i=0;i<flag.length-1;i++){
    		for(int j=i+1;j<flag.length;j++){
    			if(flag[i]==flag[j]){
    				return false;
    			}
    		}
    	}
    	return true;
    }
    

    结果

  • 相关阅读:
    SAP ALE 事务代码
    jquery插件——仿新浪微博限制输入字数的textarea
    《响应式web设计》读书笔记(五)CSS3过渡、变形和动画
    《响应式web设计》读书笔记(四)HTML5与CSS3
    MySQL 数据类型
    深入理解JavaScript中的this关键字
    SQL Server 存储过程、触发器、游标
    SQL Server 视图
    SQL Server表的创建及索引的控制
    SQL Server 查询语句(二)
  • 原文地址:https://www.cnblogs.com/stars-one/p/9695753.html
Copyright © 2011-2022 走看看