关于一个基础的循环问题

刘浮生 2010-03-02 06:11:47
题目:编写程序,求13-23+33-43....+993-1003的值.

我的残缺代码是这样的.
public class mathDemo
{
public static void main(String[] agrs)
{
int sum = 0 ; //定义变量,保存循环累加的结果.
for(int i=1;i<=100;i++) //把13,23,33等,看成10.由于为了方便,看成1-2+3-4...+99-100
}
}

写到for循环以后,我就不知道怎么从代码的角度去完善了.虽然这个问题相对很简单,但是也希望能够有人认真的回答,帮忙提及下一步思路,我不想直接要代码和答案,需要的知识思路,谢谢。
...全文
90 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘浮生 2010-03-03
  • 打赏
  • 举报
回复
感谢楼上的所有人的热心回复,也特别感谢9楼,虽然我是结了帐以后才看到你的帖子,但是从你的帖子里,我又学会了另外一种思路,因为我这个人学东西很死板,所有思路对我很重要。
根据9楼的思路,写出来的
public class MathTest01
{
public static void main(String[] agrs)
{
int sum=0 ;//保存1-2+3-4...+99-100的结果.
int sum1=0 ;//保存1+3+5...+99的结果
int sum2=0 ;//保存2+4+6..+100的结果
for (int x=1;x<=99 ;x+=2 ) //使用for循环
{
sum1=sum1+x*10+3 ; //执行累加操作
}
for (int y=2;y<=100 ;y+=2 ) //使用for循环
{
sum2=sum2+y*10+3 ; //执行累加操作
}
System.out.println("sum1的值为:"+sum1); //打印信息
System.out.println("sum2的值为:"+sum2); //打印信息
sum = sum2-sum1 ;//减法操作
System.out.println("13-23+33-43....+993-1003的值为:"+sum);//打印信息

}
}


根据5楼的思路,写出来的

public class P376
{
public static void main(String[] args)
{
long sum1=0,sum2=0,sum=0; //定义变量
for(int i=1;i <=100;i++) { //判断循环条件
if(i%2==0){ //如果能被2整除的话,则为减
sum1+=i*10+3; //执行循环操作
}
if(i%2!=0) //判断循环条件
{ //不能被2整除,则为正.
sum2+=i*10+3; //执行循环操作
}
}
sum= sum2-sum1;
System.out.print("13-23+33....+993-1003的值为:"+sum); //打印信息
}
}
tjsd1234 2010-03-02
  • 打赏
  • 举报
回复
大概思路是把题目分成两部分看:(1+3+5+...+99)-(2+4+6+...+100)
设置两个变量a,b
令a存放1+3+5+...+99的结果
b存放2+4+6+...+100的结果
最终a-b即可得到sum

具体代码如下:
int sum=0,a=0,b=0;
int i,j;
for(i=1;i<98;i=i+2)\\这里为什么是i<98而不是i<100,自己可以推敲一下
{
a=a+i;
}
a=a+1;\\由于i的累加是从i=3时开始的,这里把i=1的时候也加上
for(j=2;j<99;j=j+2)\\同样,注意这里是j<99
{
b=b+j;
}
b=b+2;\\由于j的累加是从j=4时开始的,这里把j=2的时候也加上
sum=a-b;
printf("\n加法的结果为; %d",sum);
Gere Yeung 2010-03-02
  • 打赏
  • 举报
回复
结果:
1, -1
2, -2
3, -3
4, -4
5, -5
6, -6
......
Gere Yeung 2010-03-02
  • 打赏
  • 举报
回复
public class MathDemo {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <= 50; i++) {
sum += 2 * i -1;
System.out.print(sum);
sum -= 2 * i;
System.out.println(", " + sum);
}
}
}
bbb332 2010-03-02
  • 打赏
  • 举报
回复
	public static void main(String[] args) {
long sum1=0,sum2=0,sum=0;
for(int i=1;i <=100;i++) {
if(i%2==0){
sum1+=i*10+3;
}
if(i%2!=0){
sum2+=i*10+3;
}
System.out.println(sum1);
System.out.println(sum2);
}
sum= sum2-sum1;
System.out.print(sum);


}
sirtener 2010-03-02
  • 打赏
  • 举报
回复
for(int i = 1; i < 100; i++){
if(i%2==0)
sum -= i;
else
sum += i;
}
zhangshan5588 2010-03-02
  • 打赏
  • 举报
回复
我简单的写一下吧 你参考一下
for(int i=1;i <=100;i++) {
if(i%2==0){
long sum1+=i*10+3;
}
if(i%2!=0){
long sum2+=i*10+3;
}
long sum= sum2-sum1;
System.out.print(sum);
}
asdujiayong 2010-03-02
  • 打赏
  • 举报
回复
那主要就要控制操作符了
一头头 2010-03-02
  • 打赏
  • 举报
回复
2个循环嵌套着用就可以了 第一个就是累加 第二个是算那个加或者减的值 每次+10

62,584

社区成员

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

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