黑马程序员技术交流社区
标题:
从1加到100
[打印本页]
作者:
王瀛
时间:
2013-5-22 11:32
标题:
从1加到100
一道基础题:计算1+2+...+100的和
我第一想到的是for循环语句 x遍历1~100
然后sum+=x
想问一下有没有其他不同的思路
作者:
slatop@qq.com
时间:
2013-5-22 11:36
就是这样的
int num = 0;
for(int i = 1;i <= 100;i++)
num += i;
不用什么思路了啊。简单可行,一目了然。难道你还要折腾个算法出来
作者:
翟宝海
时间:
2013-5-22 12:00
本帖最后由 翟宝海 于 2013-5-22 12:04 编辑
class YunSuan
{
public static void main(String[] args)
{
YunSuan y = new YunSuan();
System.out.println(y.QiuHe(100));
}
int QiuHe(int n)
{
return n*(1+n)/2;
}
}
复制代码
作者:
无妄无涯
时间:
2013-5-22 12:22
要么就累加,要么就模拟求和公式,求和公式效率更高。其他的还真的数学大师研究了。
作者:
hdsjsql
时间:
2013-5-22 12:48
可以用递归
public class QH {
public static int ys(int x)
{
if(x>1)
return ys(x-1)+x;
else return 1;
}
public static void main(String[] args) {
System.out.print(ys(100));
}
}
复制代码
作者:
无妄无涯
时间:
2013-5-22 13:03
hdsjsql 发表于 2013-5-22 12:48
可以用递归
递归是可以,也算一种思路,但是效率啥的和直接累加是没啥区别的。
作者:
王林涛
时间:
2013-5-22 14:58
/**
求1-100间的和
分析:①、首先求和要考虑到累加思想,有两个未知变量参与 要累加的数和最后的和
②、在累加的同事定义累加条件,首先定义一个变量,使其初始化
int a=1;然后定义条件语句 while(a<=100),条件满足 a++
③、然后再定义一个变量sum=0,如果条件sum+=a
代码如下
*/
class Add
{
public static void main(String[] args)
{
int a,sum;//定义两个变量
a=1;
sum=0;
while (a<=100)
{
sum+=a;//这句话的意思是:sum = sum+a
a++;
}
System.out.println("sum="+sum);//这句必须写在循环语句外面,要不,每次累加的结果都会打印一遍
}
}
//楼主,我这样写你能看懂吧?
作者:
zms2100
时间:
2013-6-16 21:31
好像隔了好久了,呵呵,我前段时间的基础测试题也有这道题,我总共写了3个方法来实现1+....+100.
只说思路吧,都是很简单的东西:
1、普遍的for循环叠加;
2、递归叠加;
3、因为1+...+100是递增数列,所以就用递增数列的公式来实现,O(∩_∩)O~。
作者:
清水
时间:
2013-6-19 18:28
高斯小学搞的的问题 还要问啊。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2