提示: 作者被禁止或删除 内容自动屏蔽
这个题目好难!
编写一个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);
}
}
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);
}
}
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);
}
}
这样的题目很纠结!
----------------解决方案--------------------------------------------------------
的确难。
[ 本帖最后由 洛云 于 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的影响啊,呵呵 ----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽