Java编写程序1+1/2-1/3+1/4-1/5……+1/n

 我来答
pensiero
2013-04-12 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6921
采纳率:83%
帮助的人:1275万
展开全部
我觉得应该先分析问题,设计好算法,才来编写程序。

这里1+1/2-1/3+1/4-1/5……+1/n

经过分析时可以发现
如果n=偶数
如2
1+1/2-1 其实等于 1+2
再如4
1+1/2-1/3+1/4-1 = 1+2+3+4

如果n=奇数
如3
1+1/2-1/3+1 = 1+2+3+1

如5
1+1/2-1/3+1/4-1/5+1 = 1+2+3+4+5+1

然后得到算法结论

如果n为偶数 1+1/2-1/3+1/4-1/5……+1/n 结果值为 1+2+3+....n
如果n为奇数 1+1/2-1/3+1/4-1/5……+1/n 结果值为 1+2+3+....n + 1

然后进行程序编写,这个容易
//方法已测试

public static int getResult(int n){
//奇偶数判断
boolean isOdd = n%2==1?true:false;
int result = 0;
for(int i = 1; i <= n; i++){
result += i;
}
//如果是奇数
if(isOdd){
result++;
}
return result;
}
会吃草的车
2013-04-12 · 超过20用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:58.6万
展开全部
程序:

import java.util.Scanner;
public class Test{ /**
* Java编写程序1+1/2-1/3+1/4-1/5……+1/n
* @param args
*/
public static void main(String[] args) {
int n=0;
System.out.println("请输入一个正整数N值:");
n=new Scanner(System.in).nextInt();
double sum=0;
String data="";
for (int i = 1; i <=n; i++) {
if(i==1){
sum=1;
data=data+1;
}
else{

if(i%2==1){
data=data+("-1/")+i;
sum=sum-1.0/i;
}else{
data=data+("+1/")+i;
sum=sum+1.0/i;
}
}
}
System.out.println(data+"="+sum);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-02-28
展开全部
static void SerialTest(int n){
double sum=1;
double a;
for(int i=2; i<=n; i++){
a=(i%2==0?1.0:-1.0);
sum+=a/i;
//System.out.println(a+"/"+i);
}
System.out.println("sum="+sum);
}

大体如此
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月牙马马
2013-04-12 · TA获得超过189个赞
知道小有建树答主
回答量:428
采纳率:0%
帮助的人:175万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西维说
2013-04-12
知道答主
回答量:12
采纳率:0%
帮助的人:7.8万
展开全部
public double foo(int n){
double sum=1.0;

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

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式