黑马程序员技术交流社区

标题: 编写程序计算12+22+32+....+1002的和我可以用等差数列吗? [打印本页]

作者: zhy934453950    时间: 2015-3-30 20:05
标题: 编写程序计算12+22+32+....+1002的和我可以用等差数列吗?
再做入学检测题,有个题是编写程序计算12+22+32+....+1002的和。
一开始我的思路是定义一个变量int a=12然后for循环到1002每次+10进行累加。
但是想到了另一种不需要循环的方法,就算是投机取巧吧:lol就是直接等差数列求和公式(a1+an)*n/2求出。
但是这种方法用在这里可行吗?
作者: fantacyleo    时间: 2015-3-30 21:00
当然可行。用循环只是让你练习循环语句的使用。如果你觉得已经掌握了循环语句,那就没问题
作者: hhh233    时间: 2015-3-30 21:41
应该要写循环吧, 这种应该就是考循环的,而不是考数学知识的
作者: zhy934453950    时间: 2015-3-30 21:51
我是(12+1002)100/2应该是这样吧
作者: 温大帅    时间: 2015-3-30 21:59
楼主很机智
作者: 冰心冷恋    时间: 2015-3-30 22:17
楼主不说 都想不到还可以这样做
作者: natsu647    时间: 2015-3-30 23:48
应该可以的,这就是算法啊!
作者: 勇闯☀☀黑马    时间: 2015-3-31 08:02
本帖最后由 勇闯☀☀黑马 于 2015-3-31 08:05 编辑

你可以定一个数组。
public static void main(String[] args)
{
  int[] arr={12,22,32.........1002};
    int sum=arr[0];
    for(x=1;x<99,x++)
     {
        sum=arr[x]+sum;
     }
   System.out.println(sum);
}
作者: 王琛    时间: 2015-3-31 08:07
差是十,   
作者: 罗晓飞    时间: 2015-3-31 08:32
编程就是这样,只要你做出来,就行。。。
作者: xj刘博    时间: 2015-3-31 12:50
可以,这道题可以用很多种方法做出来,最终我们的目的都是使算法高效
作者: 冻了冬天    时间: 2015-3-31 13:25
简化代码嘛这不很好吗
作者: leejun同学    时间: 2015-3-31 13:25
只能说楼主很机智……
作者: tubao1991    时间: 2015-3-31 13:41
只能说机智啊楼主!但是貌似JAVA算法结构里不接受这个等式((a1+an)*n/2)啊
作者: zhy934453950    时间: 2015-4-1 08:10
勇闯☀☀黑马 发表于 2015-3-31 08:02
你可以定一个数组。
public static void main(String[] args)
{

嘿嘿,忘了还有这种方法
作者: zhy934453950    时间: 2015-4-1 08:12
tubao1991 发表于 2015-3-31 13:41
只能说机智啊楼主!但是貌似JAVA算法结构里不接受这个等式((a1+an)*n/2)啊 ...

我可以写((12+1002)*100/2)啊:P
作者: 胡几手    时间: 2015-4-1 09:43
我觉得不行,出题人是想考你循环的,你这样投机取巧不好。你要回答的不是正确的答案,而是最符合命题老师意图的答案。如果你实在是不想用循环,还有别的办法,可以用递归,这个比循环高级些,更容易展现你的实力。
作者: 温暖的小白    时间: 2015-4-1 09:58
胡几手 发表于 2015-4-1 09:43
我觉得不行,出题人是想考你循环的,你这样投机取巧不好。你要回答的不是正确的答案,而是最符合命题老师意 ...

老师更希望看到独特的答案,亲,这可不是高考呦!只要能做出来,任何方法都可以,而且是越高效越好!
作者: 翰墨    时间: 2015-4-1 10:01
楼主可以定义一个方法用来做累加和,然后把1002做参数传进去。这样便于扩展
       public static int leiJia(int num){
                int a=12,b,sum;
                b=(num-a)/10+1;
                sum=(a+num)*b/2;
                return sum;
               
        }
作者: 呆呆怪兽    时间: 2015-4-1 10:02
我觉得只要做出结果就成
作者: Sylvanas    时间: 2015-4-3 10:36
猛然记起我的基础测试题里面也有这一题,但是我好像看成了1的平方一直加到100的平方..




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