题目:编写程序,求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循环以后,我就不知道怎么从代码的角度去完善了.虽然这个问题相对很简单,但是也希望能够有人认真的回答,帮忙提及下一步思路,我不想直接要代码和答案,需要的知识思路,谢谢。

解决方案 »

  1.   

    我简单的写一下吧  你参考一下
    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);
    }
      

  2.   

    for(int i = 1; i < 100; i++){
      if(i%2==0)
        sum -= i;
      else
        sum += i;
    }
      

  3.   

    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); 
    }
      

  4.   

    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);
    }
    }
    }
      

  5.   

    大概思路是把题目分成两部分看:(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);
      

  6.   

    感谢楼上的所有人的热心回复,也特别感谢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); //打印信息
    }
    }