zoukankan      html  css  js  c++  java
  • 第三届蓝桥杯Java高职组决赛第一题

    题目描述:

        看这个算式:
        ☆☆☆ + ☆☆☆ = ☆☆☆
        如果每个五角星代表 1 ~ 9 的不同的数字。
        这个算式有多少种可能的正确填写方法?
        173 + 286 = 459
        295 + 173 = 468
        173 + 295 = 468
        183 + 492 = 675
        以上都是正确的填写法!
        注意:
        111 + 222 = 333 是错误的填写法!
        因为每个数字必须是不同的! 
        也就是说:1~9中的所有数字,每个必须出现且仅出现一次!
        注意:
        不包括数字“0”!
        注意:
        满足加法交换率的式子算两种不同的答案。
        所以答案肯定是个偶数!
        
    分析:先生成1-9组成的不同的9位数,然后三个三个的相加,如果a+b=c就输出结果。
    主要用递归,出口是1-9个不同的数生成完毕。
    import java.util.ArrayList;
    import java.util.List;
    
    public class test_1 {
    	public static List<String> num = new ArrayList<String>();
    	public static int count =0;
    	public void randomNum(int mark){
    		if(mark == 9){
    			String[] result = (String[])num.toArray(new String[10]);
    			String a = "";
    			String b = "";
    			String c = "";
    			for(int i=0;i<3;i++)
    				a+=result[i];
    			for(int i=3;i<6;i++)
    				b+=result[i];
    			for(int i=6;i<9;i++)
    				c+=result[i];
    			if(Integer.parseInt(a)+Integer.parseInt(b)==Integer.parseInt(c))
    				//System.out.println(a+" + "+b+" = "+c);
    				count++;
    			return ;
    		}else{
    			for(int i=1;i<=9;i++){
    				if(!num.contains(""+i)){
    					num.add(""+i);
    					randomNum(++mark);
    				}else{
    					continue;
    				}
    				mark--;
    				num.remove(mark);
    			}
    		}
    		
    	}
    	
    	public static void main(String args[]){
    		new test_1().randomNum(0);
    		System.out.println(count);
    	}
    }
    


  • 相关阅读:
    ASP.NET 备份恢复SqlServer数据库
    ASP.NET MVC3.0 Razor 视图模板 语法
    ASP.NET 缓存
    代码生成框架
    C#中HashTable的用法
    C# 概念 委托和事件
    Web Service 系列 → Web Service 简介
    CDN 内容分发网络
    HarmonyOS开发者创新大赛
    #2020征文手表#【图解鸿蒙】多组示例演示三个样式的组合用法
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3167970.html
Copyright © 2011-2022 走看看