当前位置: 代码迷 >> Java相关 >> 这个题目好难!
  详细解决方案

这个题目好难!

热度:118   发布时间:2011-04-01 23:20:17.0
这个题目好难!
编写一个Java应用程序,计算1-1/3+1/5-1/7+1/9-1/11+...的前10000项和。
程序代码:
public class Example3_4{
public static void main(String args[]){
double x=0;
double sum=0;
for(int i=1;i<10000;i++){
if(i%2==0){
x=(-1)*(1/(2*i-1));
}
else{
x=1/(2*i-1);
}
sum=sum+x;
}
System.out.printf("sum的值为:%f\n",sum);
System.out.printf("x的值为:%f\n",x);
}
}

编写一个Java应用程序,计算1+2!+3!+4!+5!+...从100项到200项的和
程序代码:
public class Example3_5{
public static void main(String args[]){
long sum=0;
long x=1;
for(i=1;i<=200;i++){
x=x*i;
if(i>=100){
sum=sum+x;
}
}
System.out.printf("sum的值为:%d\n",sum);
System.out.Printf("x的值为:%d\n",x);
}
}

这样的题目很纠结!
搜索更多相关的解决方案: 应用程序  Java  

----------------解决方案--------------------------------------------------------
的确难。

[ 本帖最后由 洛云 于 2011-4-2 18:21 编辑 ]
----------------解决方案--------------------------------------------------------
这两道题用普通的数据类型来算是不行的。
----------------解决方案--------------------------------------------------------
回复 3楼 buffer
呃,用普通数据类型也不是不行,需要一种特别的方法。
----------------解决方案--------------------------------------------------------
public class Example3_4{
public static void main(String args[]){
double x=0;
double sum=0;
for(int i=1;i<10000;i++){
if(i%2==0){
x=(-1)*(1.0/(2*i-1));  //数据类型的转换,要不然结果为0
}
else{
x=1.0/(2*i-1);
}
sum=sum+x;
}
System.out.println("sum的值为:"+sum);  //java中有printf()吗?
System.out.println("x的值为:"+x);
}
}



[ 本帖最后由 qq1023569223 于 2011-4-5 12:43 编辑 ]
----------------解决方案--------------------------------------------------------
public class Example3_5{
public static void main(String args[]){
double sum=0;
double x=1;  //不知道double有那么大不?
for(i=1;i<=200;i++){
x=x*i;
if(i>=100){
sum=sum+x;
}
}
System.out.println("sum的值为:"+sum);
System.out.Println("x的值为:"+x);
}
}



[ 本帖最后由 qq1023569223 于 2011-4-5 12:42 编辑 ]
----------------解决方案--------------------------------------------------------
回复 6楼 qq1023569223
你对print的使用也受了C语言printf的影响啊,呵呵
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2011-04-05 02:15:50
付政委
该用户已被删除
  得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-04-05 02:18:14
qq8801103

来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:412
专家分:340
注 册:2009-10-8
  得分:2 
程序代码:
public class E_6 {
     public static void main(String[] args){
          c aaa=new c();
          aaa.sum(200);
      }
     public void sum(int y){
         int i,j=1;
         int s=0;
         for(i=100;i<=y;i++){
             j=j*i;
                 s=s+j;
         }
         System.out.println(":"+s);
     }
}
纠结你都做出来了  
程序代码:
public class E_14{
    public static void main(String[] args){
        int i,t=1;
        float sum=0;
        for(i=1;i<=1000;i+=2){
            sum+=t*(1.0/i);
            t=-t;
        }
        System.out.println("结果是:"+sum);
    }
}




----------------解决方案--------------------------------------------------------
  相关解决方案