黑马程序员技术交流社区

标题: 一个整数用连续的数字之和来表示 [打印本页]

作者: 邓海涛    时间: 2012-4-8 11:16
标题: 一个整数用连续的数字之和来表示
怎么样实现这样一个程序?就如输入一个整数n(n>=2),找出1000以内这样的n:
  如:15=1+2+3+4+5
           =4+5+6
           =7+8

怎么样编程实现呢?

作者: 郑苑东    时间: 2012-4-8 12:31
如果是你想从一开始累加。。那么可以定义一个循环让他自加。。知道加到大于或者等于停止。。。第一个循环如果 通过  返回加的最后那个数 。。也就是循环结束时的i的值。。将i的值减一。。然后又开始自加。。知道等于那个数。。如果加到超过了循环结束。。打印false提示。。。如果可以就可以接着第三个循环。。每次循环传入一个数。。就是从这个数开始相加。。而且最好你多举几个例子。。一个例子很难知道你真正要做的内容。。。
作者: 攻城狮    时间: 2012-4-8 12:32
本帖最后由 李南江 于 2012-4-8 12:37 编辑

累加思想可以实现
例如:
public static int add()
{
    int temp=0
for(int x=1;x<=10; x++)
{
temp+=x;
}
return temp;
}
其它的如楼上所说
作者: 欧阳才志    时间: 2012-4-8 13:03
我提供一个方法吧,不知道对不对,思想是这样的,给定一个数之后,就在1000以内找这个数的被加数,然后循环,当值符合要求的时候就将这个值放到数组里存起来,留做处理。然后再找这两个数的被加数,并打印,其实就是三层循环。这个方法我么有验证过,不知道通不.
public static javasort(int num)
int [] rx=new int [];
int [] ry=new int[];
for(int x=0;x<1000;x++)
{
    for(int y=0;y<1000;y++)
      {
         if(x+y==num)
           {
             rx[x]=x;
             ry[y]=y;
             for(int x1=0;x1<x;x++)
              {
                 for(int y1=0;y1<x;y1++)
                   if(x1+y1==x)
                    System.out.println(+x1+" "+y1);
                }
              for(int x2=0;x2<x;x++)
              {
                 for(int y2=0;y2<x;y1++)
                   if(x2+y2==x)
                    System.out.println(+x2+" "+y2);
                }

             }
        }
}

作者: pray    时间: 2014-4-26 05:25
惊天地且泣鬼神的好帖




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2