Java实现等差数列求和

zy1419306628 2017-12-06 10:34:02
用最基本的for语句实现1+2+3+....+99,结果应该是2500,可是我的算法算出来不一样,想了一早上都没有结果,求大神指点!
...全文
1851 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzd_10010 2017-12-06
  • 打赏
  • 举报
回复
你那个是要加一所以从0开始循环,到最后一次i就不能等于50了,50*2+1=101这就不是你要的到99了
wzd_10010 2017-12-06
  • 打赏
  • 举报
回复
看看是不是这样的
public class Number {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum = 0;
//		判断奇数偶数实现等差和
//		for (int i = 1; i < 100; i++) {
//			if (i%2 == 1) {	
//				sum += i;
//			}		
//		}
//		这个应该是你要的结果了,因为最后要减一所以要带上等于号
		for (int i = 1; i <= 50; i++) {
			sum += 2*i-1;
		}
		System.out.println(sum);
	}

}
自由自在_Yu 2017-12-06
  • 打赏
  • 举报
回复
你的等差d=2,每一项之差是2,你求的是1+3+5+...+99
public static void main(String[] args) {
		int a=1;
		int d=2;
		int s=0;
		int n=50;
		int a1 = a; 
		for (int i = 2; i <= n; i++) {
			s += a;
			System.out.print(a+" ");
			a = a1+(i-1)*d; //这里是a1,就是第一个数,a是一直改变的
		}
		System.out.println(a);
		System.out.println("前n项和为"+s);
	}
自由自在_Yu 2017-12-06
  • 打赏
  • 举报
回复
public static void main(String[] args) {
		int a=1;
		int d=2;
		int s=0;
		int n=50;
		for (int i = 0; i <= n; i++) {
			s += a;
			System.out.print(a+" ");
			a = a+(i-1)*d;
		}
		System.out.println();
		System.out.println("前n项和为"+s);
	}
打印一下看看你的a的值: 1 -1 -1 1 5 11 19 29 41 55 71 89 109 131 155 181 209 239 271 305 341 379 419 461 505 551 599 649 701 755 811 869 929 991 1055 1121 1189 1259 1331 1405 1481 1559 1639 1721 1805 1891 1979 2069 2161 2255 2351

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧