昨天,一个群里的网友,问了这么个问题:
从1到19共19个整数,请打印出利用这19个整数任意多个相加结果等于20的所有可能性。例如:
1+19;
1+2+17;
1+2+3+14;
1+2+3+4+10;
.
.
.
3+4+6+7;
3+5+12;
.
.
但是如同19+1和1+19是一样的,作为一个算式
我想了出来一个解决办法,但是,还没有进行算式过滤。先贴出来,供大家讨论。
package com.demo;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Frank email:zhufeng1981_888@hotmail.com
* @since 1.0
*
*/
public class Expression {
static int[] NUM = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19 };
/**
*
* @param num the array of 0 to 19
* @param addend the first add number
* @return list of expressions
*/
public static List<String> contains(int[] num, int addend) {
StringBuilder sb = new StringBuilder(addend + "+");
List<String> results = new ArrayList<String>();
int temp;
for (int i = 0; i < NUM.length; i++) {
temp = 20 - addend;
for (int j = i; j < NUM.length; j++) {
if (temp - NUM[j] > 0) {
sb.append(NUM[j] + "+");
temp = temp - NUM[j];
} else if (temp - NUM[j] == 0) {
sb.append(NUM[j] + "");
temp = temp - NUM[j];
results.add(sb.toString());
sb = new StringBuilder(addend + "+");
break;
} else {
if (j < NUM.length)
sb = new StringBuilder(addend + "+");
continue;
}
}
}
return results;
}
public static void showNoneRepeatExpression() {
List<String> allExpressions = new ArrayList<String>();
for (int j = 0; j < NUM.length; j++) {
List<String> list = Expression.contains(NUM, NUM[j]);
allExpressions.addAll(list);
}
for (int i = 0; i < allExpressions.size(); i++) {
System.out.println(allExpressions.get(i));
}
}
public static List<String> filterHandler(List<String> list) {
int n = list.size();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
}
}
return list;
}
public static void main(String[] args) {
showNoneRepeatExpression();
}
}
分享到:
相关推荐
通过比较每个选项的大小关系,可以找出结果最大的算式。 2. **行程问题** - 第二题是关于火车过桥的行程问题,需要理解火车通过桥的总距离等于火车长度加上桥的长度,从而选择正确的算式进行计算。 3. **图形周长...
- 计算口算技巧,比如35乘以19可以通过先口算35乘以20再减去1个35。 - 减法问题中的关系,当被减数、减数和差的和是120时,如何求出差值。 - 在有余数的除法中,余数必须小于除数。 2. **选择题**: - 考察乘法...
- **填空题1**:在38÷19=2和2÷0.1=20中,第一个算式表示38能被19除尽,第二个算式表示2能被0.1整除。 - **填空题2**:40的质因数分解是2×2×2×5。 - **填空题3**:6□0能被3和5整除,说明□内可填0或5,因为3...
- 在一组数中找出最大和最小的数,如在15, 8, 20, 17, 9中,最大的数是20,最小的数是8。 6. **填空题(组合题)**: - 要求学生根据给出的信息填写缺失的数量,如一班和二班的椅子、桌子和书本数量。 7. **选择...
- 20以内所有质数的和是2+3+5+7+11+13+17+19=77。 3. 最小公倍数和最大公约数: - 如果a=2×2×3×5,b=2×5×7,a和b的最小公倍数是2×2×3×5×7=420,最大公约数是2×5=10。 4. 长方体框架计算: - 用3.6m的...
9. 绝对值的整数和:所有绝对值不大于2的整数包括-2, -1, 0, 1, 2,它们的和是0。 10. 同类项的定义:3a^5bm与-2anb^2是同类项,意味着a的指数相同,b的指数也相同,所以2m-n=5-2=3。 11. 定义新运算:根据a*b=a^...
4. **基本加减法**:涉及被减数、减数和差的概念,如被减数和减数都是7,算式是7 - 7 = 0,两个相同数的和是16,这个数是8。 5. **比较大小**:学习比较数的大小,如10比15少5,比8多4的数是12。 6. **数的排序**...
- 牛奶盒装选择,需要用到因数的概念,找出6和8的公因数。 - 长方形周长的计算,需要用到长方形周长公式。 - 价格差额计算,需要做减法。 - 方向与距离的判断,通过多次向北、向南移动,最后计算净距离和方向。 ...
例如,在4x5=20中,4和5是20的因数,20是4和5的倍数。 **练习解析:** 1. 25x3=75中,25是3的倍数,3是25的因数;14x6=84中,14是6的倍数,6是14的因数;20x5=100中,20是5的倍数,5是20的因数。 2. 7的倍数有14、...
填空题测试了学生的数列理解和数字序列的推断,例如填出18前后的数字,或者找出61在数列中的位置。 在应用题环节,试题设计了实际生活场景,如妈妈买了8个苹果,草莓的个数比苹果多得多,让学生推测草莓可能有多少...
26. 第27题:让学生找出能够拼在一起的积木组合。 27. 第28题:涉及数字的排列、计数、比较大小以及加减运算。 28. 第29题:题目要求定位和圈出鸭子。 29. 第30题:可能是一些空白题目,让学生填写适当的数值或文字...
16. **找因数方法**:通过列出乘法算式找出数的因数。 17. **最大公因数与最小公倍数**:两数是倍数关系时,小数是最大公因数,大数是最小公倍数;两数是质数时,最大公因数是1;连续奇数或偶数时,最大公因数也是1...
- 文档中的问题涉及了文字录入的速度计算,正方形玻璃面积的计算,找出在特定范围内的数,长度单位换算,数量统计,以及存款比例变化等问题。需要应用基本的数学概念和计算技巧来解决。 以上是人教版三年级数学...
- 第6页的题目1要求找出图形间的数量关系,如"★比◆多"、"○比◆多"等。 6. **逻辑思维**: - 题目12要求写出10道差是10的减法算式,这需要孩子理解减法的性质和数的组合。 - 题目13类似地,需要写出6道和是11...
例如,算式序列中可能隐藏着每次操作的规则,需要找出并应用到下一个算式中。 16. **函数的化简与求值**:在化简函数表达式时,需要利用代数运算规则,如合并同类项、分配律等。求值则需要将给定的值代入化简后的...
在小学五年级数学下册的课程中,孩子们将学习到关于因数与倍数的重要概念。因数和倍数是整数除法的核心概念,它们之间的关系是相互依存的。一个数能被另一个数整除,那么前者就是后者的倍数,后者则是前者的因数。...
2. **尺子的刻度**:理解尺子的刻度,知道从0到1代表1厘米,从0到7代表7厘米,以及如何计算两个刻度之间的距离,如从5到14是9厘米。 3. **等式平衡**:填入相同的数使得等式成立,如40-某数 = 30+某数,这考察了...
8. **加减组合**:第四部分的题目要求学生根据给定的加减法表达式,按得数排序,例如“19-6 < 12+2 < 18-10 < 0+7 < 16-0”。 9. **图画表示数**:第五部分的题目通过画珠子或者图形,让学生理解加法和求解...
"与19相邻的两个数分别是( )和( )"及"13和15中间的数是( )",这些题目帮助学生理解数的顺序,找出相邻数和序列中的中间数。 五、比较大小 通过比较数的大小,如"17<19"等,培养学生的数感,理解数的大小关系。 ...