蓝桥杯 两个两位数相乘等于一个两位数乘以一个三位数
2015-03-23 21:54
399 查看
看下面的算式:
□□ x □□ = □□ x □□□
它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。
但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。 该算式中1至9的每个数字出现且只出现一次! 比如:
46 x 79 = 23 x 158 54 x 69 = 27 x 138 54 x 93 = 27 x 186 .....
请编程,输出所有可能的情况! 注意:
左边的两个乘数交换算同一方案,不要重复输出! 不同方案的输出顺序不重要
□□ x □□ = □□ x □□□
它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。
但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。 该算式中1至9的每个数字出现且只出现一次! 比如:
46 x 79 = 23 x 158 54 x 69 = 27 x 138 54 x 93 = 27 x 186 .....
请编程,输出所有可能的情况! 注意:
左边的两个乘数交换算同一方案,不要重复输出! 不同方案的输出顺序不重要
import java.util.*; public class Main{ private static List<Vector<Character>> filter; private static void fullPremutation(Vector<Character> source,Vector<Character> result){ if(source.size()==0&&isfilter(result)){ boolean exit=false; int a=(result.elementAt(0)-'0')*10+(result.elementAt(1)-'0'); int b=(result.elementAt(2)-'0')*10+(result.elementAt(3)-'0'); for(int i=0;i<filter.size();i++){ int fa=(filter.get(i).elementAt(0)-'0')*10+(filter.get(i).elementAt(1)-'0'); int fb=(filter.get(i).elementAt(2)-'0')*10+(filter.get(i).elementAt(3)-'0'); if(a==fb&&b==fa){ exit=true; break; } } if(exit==false){ filter.add(new Vector<Character>(result)); } } //对source中的数字1-9进行全排列 for(int i=0;i<source.size();i++){ result.add(source.elementAt(i)); source.remove(i); fullPremutation(source,result); source.add(i,(char)result.elementAt(result.size()-1)); result.remove(result.size()-1); } } //判断全排列中的数字是否满足a*b=c*d的条件 private static boolean isfilter(Vector<Character> result){ int a=(result.elementAt(0)-'0')*10+(result.elementAt(1)-'0'); int b=(result.elementAt(2)-'0')*10+(result.elementAt(3)-'0'); int c=(result.elementAt(4)-'0')*10+(result.elementAt(5)-'0'); int d=(result.elementAt(6)-'0')*100+(result.elementAt(7)-'0')*10+(result.elementAt(8)-'0'); if(a*b==c*d) return true; return false; } //打印向量数组 private static void print(Vector<Character> vector) { System.out.printf("%c%cx%c%c=%c%cx%c%c%c", vector.elementAt(0), vector.elementAt(1),vector.elementAt(2),vector.elementAt(3), vector.elementAt(4),vector.elementAt(5),vector.elementAt(6), vector.elementAt(7),vector.elementAt(8)); } public static void main(String[] args){ Vector<Character> source=new Vector<Character>(); Vector<Character> result=new Vector<Character>(); filter=new ArrayList<Vector<Character>>(); for(int i=1;i<=9;i++){ source.add((char) ('0'+i)); } fullPremutation(source,result); for(int i=0;i<filter.size();i++){ print(filter.get(i)); System.out.println(); } } }
相关文章推荐
- 猜算式 □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。
- 猜算式 看下面的算式: □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。
- 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方。
- 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其个位数字的立方和确好等于该数本身,如:153=1+5+3,则153是一个“水仙花数”。
- 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
- 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。
- 57-一个互不相同的4位数乘以1位数等于这个4位数的倒叙的数有?
- 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用f
- 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方
- 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
- 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方
- 42.编写程序打印所有的“水仙花数”。“水仙花数”指一个三位数,其各位数字立方和等于该数本身,例如153是一个“水仙花数”,因为 153=1×1×1+3×3×3+5×5×5。
- 两个小数相乘,小数点后面位数没有限制,设计一个高精度算法
- 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
- Java开发练习1,打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
- 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
- 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
- (c++)打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。
- 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
- 求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。