猜算式(软件大赛)
来源:互联网 发布:网络三大神书诛仙 编辑:程序博客网 时间:2024/05/18 11:27
看下面的算式:□□ x □□ = □□ x □□□它表示:两个两位数相乘等于一个两位数乘以一个三位数。如果没有限定条件,这样的例子很多。但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。该算式中1至9的每个数字出现且只出现一次!比如:46 x 79 = 23 x 15854 x 69 = 27 x 13854 x 93 = 27 x 186.....请编程,输出所有可能的情况!注意:左边的两个乘数交换算同一方案,不要重复输出!不同方案的输出顺序不重要
代码:
package BigTitle;public class CaiSuanShi {private static int count=0;public static void main(String[] args) {// TODO Auto-generated method stub int list[]={1,2,3,4,5,6,7,8,9}; perm(list,0,8);} public static String perm(int list[],int k,int m) { int i; int temp; String str=""; if(k>m) { for(i=0;i<=m;i++) { str+=String.valueOf(list[i]); if(str.length()==9) { deal(str); // System.out.println(str); } } count++; } else { for(i=k;i<=m;i++) { temp=list[k]; list[k]=list[i]; list[i]=temp; perm(list,k+1,m); temp=list[k]; list[k]=list[i]; list[i]=temp; } } return str; } public static void deal(String s) { int arr[]=new int[4]; for(int i=0;i<3;i++) { arr[i]=Integer.valueOf(s.substring(i*2, 2*(i+1))); } arr[3]=Integer.valueOf(s.substring(6)); if(arr[0]*arr[1]==arr[2]*arr[3]) System.out.println(arr[0]+"X"+arr[1]+"="+arr[2]+"X"+arr[3]); }}
- 猜算式(软件大赛)
- 全国软件大赛(猜算式)全排列实现
- 软件大赛--趣味算式
- 第七届蓝桥杯大赛个人赛省赛(软件类)java语言B组第三题:凑算式
- 购物券(软件大赛)
- 黑洞数(软件大赛)
- 砝码称重(软件大赛)
- 全国软件填写算式
- 全国软件填写算式
- 猜算式
- 猜算式
- 猜算式
- 猜算式
- 猜算式
- 猜算式
- 猜算式
- 猜算式
- 猜算式
- MFC之文件读取
- Android UI设计——画廊Gallery与提示框Dialog的综合运用
- OpenMeetings二次开发(二)RED5简介
- 我的开发之路
- iOS Automated Tests with UIAutomation--ios自动化测试
- 猜算式(软件大赛)
- Unity3d通过Action注册事件,回调方法
- struts2第一个例子
- 回调函数的理解
- redhat linux手工加载raid卡驱动
- Qt加载翻译文件
- worldfinals 2008 Always an integer
- C++_运算符重载
- OpenMeetings二次开发(三)OpenLaszlo基础