码迷,mamicode.com
首页 > 其他好文 > 详细

编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。

时间:2015-05-14 18:44:06      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:

import java.util.ArrayList;
import java.util.List;
 
/**
 * 1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234、412345等.要求:"4"不能在第三位,"3"与"5"不能相连.
 * 
 * @author gnn
 */


public class TryTest {

public static List<String> list = new ArrayList<String>();
public static int num = 8 ;
/**
     * 构造字符串的所有排序组合
     * @param str 将要组合成的字符
     * @param nstr 源字符串集
     */

public static void group(String str, String nstr) {
String temp = "";
addStr(temp, "+");
addStr(temp, "-");
addStr(temp, "o");

}
 
public static void addStr(String str, String nstr) {

if (num != str.length()) {


String temp = "";
temp = str + nstr;
if (temp.length() == num){
list.add(temp);
}
System.out.println(temp);
addStr(temp, "+");
addStr(temp, "-");
addStr(temp, "o");
}
}

public static void main(String[] args) {
TryTest.group("", "+-o");
System.out.println(list.size());
}

}

 


import java.util.ArrayList;  
import java.util.List;  
import java.util.EmptyStackException;  
  
public class MyStack<E extends Object> {  
    private List<E> pool = new ArrayList<E>();  
  
    public MyStack() {  
    }  
  
    public void clear() {  
        pool.clear();  
    }  
  
    public boolean isEmpty() {  
        return pool.isEmpty();  
    }  
  
    /** 
     * 获取栈顶元素 
     * */  
    public E getTopObjcet() {  
        if (isEmpty()) {return null;}  
        return pool.get(0);  
    }  
  
    /** 
     * 弹出栈操作 
     * */  
    public E pop() {  
        if (isEmpty()) {throw new EmptyStackException();}  
        return pool.remove(pool.size() - 1);  
    }  
  
    /** 
     * 压入栈 
     * */  
    public void push(E e) {  
        //if (isEmpty()) {throw new EmptyStackException();}  
        pool.add(e);  
    }  
  
    /** 
     * 获取当前栈大小 
     * */  
    public int getStatckSize() {  
        //if (isEmpty()) {throw new EmptyStackException();}  
        return pool.size();  
    }  
  
}  


import java.util.ArrayList;
import java.util.List;
 
public class Question {

private static List<Integer> sumList = new ArrayList<Integer>() ;

public static void main(String[] args) {
 
TryTest.group("", "+-o");
System.out.println(TryTest.list.size());
new Question().init();

System.out.println(sumList.size());
int max = new Question().sort();
System.out.println("max:"+max);

int min = new Question().getMin();
System.out.println("min:"+min);
}


public void init() {

this.operate();

}

public void operate() {

MyStack<Integer> intStack = new MyStack<Integer>();
MyStack<String> strStack = new MyStack<String>();
for (int i = 0 ; i < TryTest.list.size(); i++) {

intStack.clear();
strStack.clear();
for (int t = 9 ; t > 0 ; t--) {
intStack.push(t);
}

for (int j = TryTest.list.get(i).length() ; j > 0 ; j--) {
strStack.push(TryTest.list.get(i).substring(j-1,j));  

}  
this.calculate( intStack , strStack);
}
}

public void calculate(MyStack<Integer> intStack, MyStack<String> strStack) {
int size = intStack.getStatckSize();
int strStackSize = strStack.getStatckSize();
 
/*for (int i = 0; i < size; i++) {
System.out.println(intStack.pop());
}*/
int temp = intStack.pop();
for (int i = 0; i < strStackSize; i++) {
 
switch (strStack.pop()) {
case "+":
temp+=intStack.pop();
 
break;
case "-":
temp-=intStack.pop();
 
break;
case "o":
temp=Integer.parseInt(temp+""+intStack.pop());  
break;

default:  
break;
}

}
System.out.println(temp);
sumList.add(temp);
}

public int sort(){

int max = sumList.get(0) ;
for (int i = 0; i < sumList.size()-1; i++) {
if(max < sumList.get(i+1)){
max = sumList.get(i+1);
}
}
return max;
}

public int getMin(){

int min = sumList.get(0) ;
for (int i = 0; i < sumList.size()-1; i++) {
if(min > sumList.get(i+1)){
min = sumList.get(i+1);
}
}
return min;
}
}


编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。

标签:

原文地址:http://blog.csdn.net/guonanjun/article/details/45723379

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!