第五届蓝桥杯A组java—神器算式
2017-03-28 23:56
232 查看
package the_five_session__A;
import java.util.*;
/*
标题:神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。
*/
public class Magic_Formula
{
public static void main(String[] args)
{
int sum = 0;
int product;
for(int i=1; i<1000; i++)
{
int i_len = (i+"").length();
int j1=1;
// 第二个数的长度取决于第一个
for(int j=1; j<4-i_len; j++)
{
j1 = j1*10;
}
for(int j=j1; j<(j1*20); j++)
{
product = i*j;
if(fun(i, j, product) == true)
{
System.out.println(i + "*" + j + "=" +product);
sum++;
}
}
}
System.out.println("sum = "+sum);
}
public static boolean fun(int a, int b, int product)
{
//先将3个数转成字符串
String str_a = String.valueOf(a);
String str_b = String.valueOf(b);
String str_p = String.valueOf(product);
//在将3个字符串转成char 数组
char char_a[] = str_a.toCharArray();
char char_b[] = str_b.toCharArray();
char char_p[] = str_p.toCharArray();
//设计返回标志
boolean flag = false;
int f1 = 0;
int f2 = 0;
if(char_a.length+char_b.length != 4 || char_p.length != 4)
{
flag = false;
return flag;
}
// 循环判断
for(int i=0; i<char_a.length; i++)
{
for(int j=0; j<char_p.length; j++)
{
if(char_a[i] == char_p[j])
{
char_p[j] = 'a';
f1++;
break;
}
}
}
for(int i=0; i<char_b.length; i++)
{
for(int j=0; j<char_p.length; j++)
{
if(char_b[i] == char_p[j])
{
char_p[j] = 'a';
f2++;
break;
}
}
}
if(f1 == char_a.length && f2 == char_b.length)
flag = true;
return flag;
}
}
import java.util.*;
/*
标题:神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。
*/
public class Magic_Formula
{
public static void main(String[] args)
{
int sum = 0;
int product;
for(int i=1; i<1000; i++)
{
int i_len = (i+"").length();
int j1=1;
// 第二个数的长度取决于第一个
for(int j=1; j<4-i_len; j++)
{
j1 = j1*10;
}
for(int j=j1; j<(j1*20); j++)
{
product = i*j;
if(fun(i, j, product) == true)
{
System.out.println(i + "*" + j + "=" +product);
sum++;
}
}
}
System.out.println("sum = "+sum);
}
public static boolean fun(int a, int b, int product)
{
//先将3个数转成字符串
String str_a = String.valueOf(a);
String str_b = String.valueOf(b);
String str_p = String.valueOf(product);
//在将3个字符串转成char 数组
char char_a[] = str_a.toCharArray();
char char_b[] = str_b.toCharArray();
char char_p[] = str_p.toCharArray();
//设计返回标志
boolean flag = false;
int f1 = 0;
int f2 = 0;
if(char_a.length+char_b.length != 4 || char_p.length != 4)
{
flag = false;
return flag;
}
// 循环判断
for(int i=0; i<char_a.length; i++)
{
for(int j=0; j<char_p.length; j++)
{
if(char_a[i] == char_p[j])
{
char_p[j] = 'a';
f1++;
break;
}
}
}
for(int i=0; i<char_b.length; i++)
{
for(int j=0; j<char_p.length; j++)
{
if(char_b[i] == char_p[j])
{
char_p[j] = 'a';
f2++;
break;
}
}
}
if(f1 == char_a.length && f2 == char_b.length)
flag = true;
return flag;
}
}
相关文章推荐
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组马虎的算式
- 第五届蓝桥杯B组java—奇怪的算式
- 蓝桥杯2014年以前JAVA历年真题及答案整理——猜算式
- 第五届蓝桥杯练习题 - 入门练习Java解题代码
- 第五届“蓝桥杯”全国软件校内选拔赛试题(Java组)1、素数问题
- 第五届“蓝桥杯”全国软件 校内选拔赛试题(Java组)11、(18分) 身份证的奥秘
- 第五届“蓝桥杯”全国软件 校内选拔赛试题(Java组)10.
- 黄金队列,汉诺塔,奇怪的比赛,第一个数字,割圆,最大数,矩形的交集和并集,趣味算式(第三届蓝桥杯Java本科预赛试题)
- 第五届蓝桥杯软件类省赛真题-Java高职-写日志
- 蓝桥杯 填算式(JAVA)
- 第五届蓝桥杯省赛解题报告--神奇算式
- 第五届蓝桥杯软件类省赛真题-Java高职-等额本金
- 第五届蓝桥杯软件类省赛真题 Java本科A 六角填数
- 第五届蓝桥杯软件类省赛真题 Java本科A 斐波那契
- 第五届蓝桥杯软件类省赛真题-JAVA-A-2_李白打酒
- 第五届“蓝桥杯”java高职组
- 第五届蓝桥杯软件类省赛真题 Java本科A 写日志
- 第五届蓝桥杯之神奇算式
- 第五届“蓝桥杯”全国软件和 校内选拔赛试题(Java组)4、计算蔬菜总价
- 第五届蓝桥杯软件类省赛真题-Java高职-大衍数列