http://acm.hnucm.edu.cn/JudgeOnline/problem.php?id=1401
题目描述:
使用递归编写一个程序,求以下数列的前n项:
s=1−1/2+1/3−1/4+1/5−1/6+…+1/n
输入
多组数据输入,每组输入一个正整数n
输出
输出前n项的结果(精确到小数点后六位)
样例输入 Copy
1
样例输出 Copy
1.000000
来源/分类
算法分析与设计
public class Main {
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int scc=sc.nextInt();
DecimalFormat format = new DecimalFormat("0.000000");
System.out.println(format.format(gcc(scc)));
}
}
public static Double gcc(int acc){
if(acc <= 1){
return 1.000000;
}else {
if(acc%2==0){
return gcc(acc-1)-(1.000000/acc);
}
else{
return gcc(acc-1) + (1.000000/acc);
}
}
}
}