求算法 一个6位数乘以一个3位数得出一个结果。但不清楚6位数中的两个数字是什么,而且结果中有一位数字也不清楚,请给出算法,找出乘数和积的值。。 12?56? * 123 __________ 154?4987 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 循环1000次,方法比较笨public static void test1() { String chengshu1 = "12?56?"; int ji = 123; String jieguo = "154?4987"; int num = 0; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { num = Integer.parseInt(chengshu1.replaceFirst("\\?", i+"").replace("?", j+"")); for (int k = 0; k < 10; k++) { if(num*ji == Integer.parseInt(jieguo.replace("?", k+""))) { System.out.println(num); System.out.println(Integer.parseInt(jieguo.replace("?", k+""))); } } } } } 这样就够了:for(int x=0;x<=9;x++) for(int y=0;y<=9;y++) for(int z=0;z<=9;z++){ if((120560+x*1000+y)*123==(15404987+z*10000)){ System.out.println("x="+x+",y="+y+",z="+z); } } 循环 9 次就可以搞定package com.keeya.csdn.test;public class Test { public static void main(String[] args) { int multiplier = 123; String multiplicand = "12?56?"; String result = "154?4987"; getNumber(multiplier,multiplicand,result); } //未知数必须是用 ? 代替 public static void getNumber(int multiplier, String multiplicand, String result){ int index = result.indexOf('?'); int head = Integer.valueOf(result.substring(0,index)); int end = Integer.valueOf(result.substring(index + 1)); int quotient; int num = 0; for(int i = 0; i < 10; i++){ num = Integer.valueOf("" + head + i + end ); if(num % multiplier != 0 ){ continue; } quotient = num / multiplier ; if(isQuite(multiplicand,String.valueOf(quotient))){ System.out.println(quotient + " * " + multiplier + " = " + num); } } } public static boolean isQuite(String str1 , String str2){ if(str1.length() != str2.length()) return false; for(int i = 0; i < str1.length(); i++){ if(str1.charAt(i) != '?' && str1.charAt(i) != str2.charAt(i)) return false; } return true; }}测试结果:125569 * 123 = 15444987 哎 脑子进水了我 把问题复杂化了给出修改后的package com.keeya.answer.test;public class Test { public static void main(String[] args) { int multiplier = 123; String multiplicand = "12?56?"; String result = "154?4987"; getNumber(multiplier,multiplicand,result); } //未知数必须是用 ? 代替 public static void getNumber(int multiplier, String multiplicand, String result){ int num ; for(int i = 0; i < 10; i++){ num = Integer.valueOf(result.replace("?", String.valueOf(i))); if(num % multiplier != 0 ){ continue; } if(isQuite(multiplicand,String.valueOf(num / multiplier))){ System.out.println(num / multiplier + " * " + multiplier + " = " + num); } } } public static boolean isQuite(String str1 , String str2){ if(str1.length() != str2.length()) return false; for(int i = 0; i < str1.length(); i++){ if(str1.charAt(i) != '?' && str1.charAt(i) != str2.charAt(i)) return false; } return true; }} 现在我做的测试任务,和java没什么关系,都快把java忘了。。迷茫我相信有一堆人和我一样,迷茫。。哈哈。。 呵呵我也差不多了现在只记得Java语言 其他的都忘了 如何将String转换为TimeStamp java中关于数据插入语句 字符串截取 如何用Java将PDF/RTF批量转TXT文件 感兴趣的来做下这个题目 在applet中如何放入一个jframe 关于JavaMail,有大礼送~~~~~~ 初学java,请问在forte for java中怎么输入程序啊? 最小的java系统 udp socket server端必须要先开启吗? 菜鸟一个 请高手帮忙解决一下Eclipse中import java.util.Date是程序不执行。 js变量怎样加入超链接
public static void test1() {
String chengshu1 = "12?56?";
int ji = 123;
String jieguo = "154?4987";
int num = 0;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
num = Integer.parseInt(chengshu1.replaceFirst("\\?", i+"").replace("?", j+""));
for (int k = 0; k < 10; k++) {
if(num*ji == Integer.parseInt(jieguo.replace("?", k+""))) {
System.out.println(num);
System.out.println(Integer.parseInt(jieguo.replace("?", k+"")));
}
}
}
}
}
for(int x=0;x<=9;x++)
for(int y=0;y<=9;y++)
for(int z=0;z<=9;z++){
if((120560+x*1000+y)*123==(15404987+z*10000)){
System.out.println("x="+x+",y="+y+",z="+z);
}
}
int multiplier = 123;
String multiplicand = "12?56?";
String result = "154?4987";
getNumber(multiplier,multiplicand,result); }
//未知数必须是用 ? 代替
public static void getNumber(int multiplier, String multiplicand, String result){
int index = result.indexOf('?');
int head = Integer.valueOf(result.substring(0,index));
int end = Integer.valueOf(result.substring(index + 1));
int quotient;
int num = 0;
for(int i = 0; i < 10; i++){
num = Integer.valueOf("" + head + i + end );
if(num % multiplier != 0 ){
continue;
}
quotient = num / multiplier ;
if(isQuite(multiplicand,String.valueOf(quotient))){
System.out.println(quotient + " * " + multiplier + " = " + num);
}
}
}
public static boolean isQuite(String str1 , String str2){
if(str1.length() != str2.length())
return false;
for(int i = 0; i < str1.length(); i++){
if(str1.charAt(i) != '?' && str1.charAt(i) != str2.charAt(i))
return false;
}
return true;
}
}
测试结果:
125569 * 123 = 15444987
把问题复杂化了
给出修改后的
package com.keeya.answer.test;public class Test { public static void main(String[] args) {
int multiplier = 123;
String multiplicand = "12?56?";
String result = "154?4987";
getNumber(multiplier,multiplicand,result); }
//未知数必须是用 ? 代替
public static void getNumber(int multiplier, String multiplicand, String result){
int num ;
for(int i = 0; i < 10; i++){
num = Integer.valueOf(result.replace("?", String.valueOf(i)));
if(num % multiplier != 0 ){
continue;
}
if(isQuite(multiplicand,String.valueOf(num / multiplier))){
System.out.println(num / multiplier + " * " + multiplier + " = " + num);
}
}
}
public static boolean isQuite(String str1 , String str2){
if(str1.length() != str2.length())
return false;
for(int i = 0; i < str1.length(); i++){
if(str1.charAt(i) != '?' && str1.charAt(i) != str2.charAt(i))
return false;
}
return true;
}
}
迷茫我相信有一堆人和我一样,迷茫。。哈哈。。
我也差不多了
现在只记得Java语言 其他的都忘了