求解答 就是输入一个数字比如 15 可以分解为 1+2+3+4+5 4+5+6 7+8就是相邻的两个和 求编程算法编程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class ConsecutiveNumbers { public static int count(int i,int sum,int data){ sum+=i; if(sum==data){ return i; }else{ if(sum<data){ i++; return count(i,sum,data); }else{ return 0; } } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String data= br.readLine(); int data2 = Integer.parseInt(data); for(int i=1;i<=(data2/2);i++){ int j = count(i,0,data2); if(j!=0){ for(int m=i;m<j;m++){ System.out.print(m+"+"); } System.out.println(j); } } }} 利用中午吃饭时间帮你写了一下,不知道满足条件不public class Test { public static void main(String []args ) { int number =15; StringBuffer sb = new StringBuffer(); for(int i=1; i<number/2+1;i++){ StringBuffer sbtemp = new StringBuffer(); sbtemp.append(i); int tempnum =i; for(int j=i+1;j<=number-i;j++){ tempnum = tempnum+j; sbtemp.append("+"+j); if(tempnum == number){ sb.append(sbtemp).append("\n"); } } } System.out.println(sb.toString()); }} 吃过饭又看一眼,发现忘了一个东西,修改如下,不修改效率太低public class Test { public static void main(String []args ) { int number =150000; StringBuffer sb = new StringBuffer(); for(int i=0; i<number/2;i++){ StringBuffer sbtemp = new StringBuffer(); sbtemp.append(i+""); int tempnum =i; for(int j=i+1;j<=number-i;j++){ tempnum = tempnum+j; sbtemp.append("+"+j); if(tempnum > number){ break; } if(tempnum == number){ sb.append(sbtemp).append("\n"); } } } System.out.println(sb.toString()); }} 想加个颜色的,居然变成代码了<span style="color: #FF0000;"></span> java参数如何修改 JAVA 画圆 我在学习JAVA,但JAVA中的英文帮助我看不懂,如何学习? 关于JAVA语音技术的一些问题。。。 初学者提个问题。。 请教一个runtime类调用外部程序时候 同步的问题....谢谢各位大虾了~ 怎么样打印出,hashtable中的所有内容啊?感谢 org.eclipse.swt下载问题 在eclipse 3.0m9中怎样设置jsp编辑调试环境(在线) 帮忙看一下程序,关于串口操作的(急!!!在线等待) 获取目录下最新的文件,如何做最好? 说说二进制I/O的疑问
public static int count(int i,int sum,int data){
sum+=i;
if(sum==data){
return i;
}else{
if(sum<data){
i++;
return count(i,sum,data);
}else{
return 0;
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String data= br.readLine();
int data2 = Integer.parseInt(data);
for(int i=1;i<=(data2/2);i++){
int j = count(i,0,data2);
if(j!=0){
for(int m=i;m<j;m++){
System.out.print(m+"+");
}
System.out.println(j);
}
}
}
}
public static void main(String []args ) {
int number =15;
StringBuffer sb = new StringBuffer();
for(int i=1; i<number/2+1;i++){
StringBuffer sbtemp = new StringBuffer();
sbtemp.append(i);
int tempnum =i;
for(int j=i+1;j<=number-i;j++){
tempnum = tempnum+j;
sbtemp.append("+"+j);
if(tempnum == number){
sb.append(sbtemp).append("\n");
}
}
}
System.out.println(sb.toString());
}
}
public static void main(String []args ) {
int number =150000;
StringBuffer sb = new StringBuffer();
for(int i=0; i<number/2;i++){
StringBuffer sbtemp = new StringBuffer();
sbtemp.append(i+"");
int tempnum =i;
for(int j=i+1;j<=number-i;j++){
tempnum = tempnum+j;
sbtemp.append("+"+j);
if(tempnum > number){
break;
}
if(tempnum == number){
sb.append(sbtemp).append("\n");
}
}
}
System.out.println(sb.toString());
}
}