计算1-1/3+1/5+.....的前1000项的和 求一个 计算1-1/3+1/5+.....的前1000项的和的程序代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 +或-使用pow(-1,n)得到,分母使用n*2-1得到 int sum = 2/3;int j = 3;for(int i = 0; i < 1000; i++){ j = j + 2; suu = sum + 1/j; } import java.math.*;//计算1-1/3+1/5+.....的前1000项public class Sum1000 { static BigDecimal divided; static BigDecimal divid; static BigDecimal quotient; static MathContext mc = new MathContext(10); static BigDecimal sum = new BigDecimal("1"); public static void main(String args[]){ for(int i = 2; i<=1000; i++){ divided = new BigDecimal(Math.pow(-1, i-1)); divid = new BigDecimal((2*i-1)); quotient = divided.divide(divid, mc); sum = sum.add(quotient); } System.out.println(sum); }} 上面精度都损失掉了,不能做不能整除的除法。最准确的是分别得到分子和分母。按照a/b+c/d=(ad+bc)/bd的规则就好了,中间加一个分子分母约最大公约数的过程 试试这个:package practice;public class CountSum { public static void main(String[]args){ double sum = 0; double a; for(int i=0;i<1000;i++){ a=Math.pow(-1, i)*1/(double)(i+1); sum+=a; } System.out.println(sum); }} //int sum =2/3; 明显是错了嘛!//起码要 double sum = 2/3;double sum = 0;int d = -1;for(int i =0; i < 1000; i ++) { d = -d; sum += 1.0*d/(2*i+1);} Double sum=0;int j=3;int e=-1; //为了弄负数 。 for(int i=0;i<=1000;i++){ j=j+2; sum=sum+1.0*e/(2*i+1);} int flag = 1; float sum = 0l;for (int i=1; i<=1000; i++) { sum += i*flat/(2*i-1); flag *= -1;} java读取vmg文件时遇到中文不能换行怎么解决 一道ACM题wa,前来求助 tomcat如何配置运行html jsp servlet文件 JAVA学习不得要领,郁闷 jacob如何转换word文件为html?帮忙看看下面的代码 关于retroguard 混淆器的使用 一个面试题 请问这种语句是什么意思?有什么作用? 请高手看一看!是怎么回事? 表格控件的getValueAt(int,int)返回的什么类型,要转换成String该怎么做? 关于线程问题 a[i].length输出的结果是1,表示的是{-5}这个数组的长度吗?为什么不会去表示{12,34}或者{3,5,7}
int j = 3;
for(int i = 0; i < 1000; i++){
j = j + 2;
suu = sum + 1/j;
}
static BigDecimal divided;
static BigDecimal divid;
static BigDecimal quotient;
static MathContext mc = new MathContext(10);
static BigDecimal sum = new BigDecimal("1");
public static void main(String args[]){
for(int i = 2; i<=1000; i++){
divided = new BigDecimal(Math.pow(-1, i-1));
divid = new BigDecimal((2*i-1));
quotient = divided.divide(divid, mc);
sum = sum.add(quotient);
}
System.out.println(sum);
}
}
package practice;public class CountSum {
public static void main(String[]args){
double sum = 0;
double a;
for(int i=0;i<1000;i++){
a=Math.pow(-1, i)*1/(double)(i+1);
sum+=a;
}
System.out.println(sum);
}}
//int sum =2/3; 明显是错了嘛!
//起码要 double sum = 2/3;
double sum = 0;
int d = -1;
for(int i =0; i < 1000; i ++) {
d = -d;
sum += 1.0*d/(2*i+1);
}
int j=3;
int e=-1; //为了弄负数 。
for(int i=0;i<=1000;i++)
{
j=j+2;
sum=sum+1.0*e/(2*i+1);
}
int flag = 1;
float sum = 0l;
for (int i=1; i<=1000; i++) {
sum += i*flat/(2*i-1);
flag *= -1;
}