用Java写一个算法,把一串数字,所有可能的和按顺序排列,并计算每个和出现的次数

例子:12030405,可能的有1+2;1+0;1+3。。。12+0;12+3。。。12+30。。。1+(2+0);1+(2+3+0);1+(2+30+4)最好是能加一个... 例子:12030405,可能的有1+2;1+0;1+3。。。12+0;12+3。。。12+30。。。1+(2+0);1+(2+3+0);1+(2+30+4)
最好是能加一个筛选和值大小范围的参数,比如和值选50-100以内,感谢
展开
 我来答
未来需努力点缀
2013-03-26 · TA获得超过4679个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:530万
展开全部
楼主你好

应你的要求 我只做了加一位的和加两位的
算法类代码如下:
public class CountSumClass {
private String number;
private String result = new String("");
public CountSumClass() {
number = new String();
}
public CountSumClass(String str) {
number = str;
}
public String getResult() {
return result;
}
public void addOne() {
int x,y;
for (int i = 0; i < number.length()-1; i++) {
x = (int)number.charAt(i) - 48;
for(int j = i+1; j<number.length(); j++) {
y = (int)number.charAt(j) - 48;
result += x+"+"+y+"="+(x+y)+"\n";
}
}
y=0;
for (int i = 0; i<number.length(); i++) {
x = (int)number.charAt(i) - 48;
y += x;
if(i == number.length()- 1) {
result += x+"="+y;
} else {
result += x+"+";
}
}
}
public void addTwo() {
int x,y,z;
result += "\n";
for (int i = 0; i<number.length()-1; i++) {
String substr = number.substring(i,i+2);
x = Integer.parseInt(substr);
z = (x%10) * 10 + (x/10);
for(int j=0; j<number.length(); j++) {
if(j!=i && j!=i+1) {
y = (int)number.charAt(j) - 48;
result += x+"+"+y+"="+(x+y)+"\n";
result += z+"+"+y+"="+(z+y)+"\n";
}
}
}
}
public String toString() {
return result;
}
}

希望能帮助你哈
orz4412
2013-03-23 · TA获得超过142个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:156万
展开全部
就是穷举呗
先按一个切,切完了,猎取这个后面的所有的排列
再按两个切
直到这个数字的长度就OK了
组完的放到某个数组里面然后判断大小
追问
求实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式