找出1到19之中数的和为20的所有组合
2014-04-02 13:38
369 查看
可以分拆成多个函数来做,每个函数计算一种长度的组合。两位数字相加时,只能是1-9之间的数,加上10-19之间的数。以此类推。
package test;
public class Sum20 {
public static void main(String[] args) {
sum2num();
System.out.println("----------------");
sum3num();
System.out.println("----------------");
sum4num();
System.out.println("----------------");
sum5num();
}
public static void sum2num(){
for(int i=1;i<10;i++)
for(int j=10;j<20;j++)
if(i+j == 20)
System.out.println(i+"+"+j+"="+20);
}
public static void sum3num(){
for(int i=1;i<6;i++)
for(int j=i+1;j<10;j++)
for(int k=j+1;k<18;k++)
if(i+j+k == 20)
System.out.println(i+"+"+j+"+" + k+"="+20);
}
public static void sum4num(){
for(int i=1;i<4;i++)
for(int j=i+1;j<6;j++)
for(int k=j+1;k<9;k++)
for(int l=k+1;l<15;l++)
if(i+j+k+l == 20)
System.out.println(i+"+"+j+"+" + k+"+" + l+"="+20);
}
public static void sum5num(){
for(int i=1;i<3;i++)
for(int j=i+1;j<4;j++)
for(int k=j+1;k<5;k++)
for(int l=k+1;l<7;l++)
for(int m=l+1;m<11;m++)
if(i+j+k+l+m == 20)
System.out.println(i+"+"+j+"+" + k+"+" + l+"+"+m +"="+20);
}
}
package test;
public class Sum20 {
public static void main(String[] args) {
sum2num();
System.out.println("----------------");
sum3num();
System.out.println("----------------");
sum4num();
System.out.println("----------------");
sum5num();
}
public static void sum2num(){
for(int i=1;i<10;i++)
for(int j=10;j<20;j++)
if(i+j == 20)
System.out.println(i+"+"+j+"="+20);
}
public static void sum3num(){
for(int i=1;i<6;i++)
for(int j=i+1;j<10;j++)
for(int k=j+1;k<18;k++)
if(i+j+k == 20)
System.out.println(i+"+"+j+"+" + k+"="+20);
}
public static void sum4num(){
for(int i=1;i<4;i++)
for(int j=i+1;j<6;j++)
for(int k=j+1;k<9;k++)
for(int l=k+1;l<15;l++)
if(i+j+k+l == 20)
System.out.println(i+"+"+j+"+" + k+"+" + l+"="+20);
}
public static void sum5num(){
for(int i=1;i<3;i++)
for(int j=i+1;j<4;j++)
for(int k=j+1;k<5;k++)
for(int l=k+1;l<7;l++)
for(int m=l+1;m<11;m++)
if(i+j+k+l+m == 20)
System.out.println(i+"+"+j+"+" + k+"+" + l+"+"+m +"="+20);
}
}
相关文章推荐
- java求1至19这些自然数数中,所有相加为20的组合
- (面试)编写一个程序,列出1-19所有相加为20的组合
- 通过String找出所有数据及组合的和 findSum(int sum, String str) str like"35,20,15,10,5"
- 有10个数,从1到10,找出其中所有的和为20的组合
- 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!
- 【面试系列】编写一个程序,列出1-19所有相加为20的组合
- 一个小excel宏:找出一组数中和为某个值的所有组合
- 一个排好序的数组,找出两数之和为m的所有组合
- 一个排好序的数组,找出两数之和为M的所有组合
- 19. 中兴面试题:输入两个整数n和m, 从数列1,2,...,n中任意选择几个数,使其和等于m, 要求编写程序输出所有的组合
- 多条件组合查询,并根据指定类别找出所有最小子类别的SQL语句备忘
- 求1~19整数中,求出和为20的组合
- java编程:从数组(1,2,4,6,9)中列出所有相加等于20的组合,例如9+9+2=20
- 【微软谷歌面试100题--【21】从1-n中找出和为m的所有组合
- 面试题———关于将一个整型数组中的所有元素组合成一个数字,并找出最小一个。
- 【程序19】找出1000以内的所有完数
- |1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20所有这些字符串,把它的数字一个个剥离??
- 一个排好序的数组,找出两数之和为m的所有组合
- [LeetCode]Palindrome Partitioning 找出所有可能的组合回文
- 找出一堆整数中两个元素和为指定值的所有组合