本帖最后由 0.o心动o.0 于 2014-1-18 00:36 编辑
首先说一下java是不存在指针的概念的
用java解这道题用了俩种方法
普通的方法 方法一:
- import java.util.*;
- public class Test {
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println("请输入一个正整数:");
- Scanner sc= new Scanner(System.in);
- double num=sc.nextInt();
- String str="";
- double result=0;
- while(true){
- str="1/"+(int)num+"+"+str;
- result+=1/num;
- num=num-2;
- if(num<1)break;
- }
-
- System.out.println(str.substring(0,str.length()-1)+"="+result);
- }
- }
复制代码
既然你提到了递归 我就用递归求了一下结果
方法二:- import java.util.*;
- public class Test {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println("请输入一个正整数:");
- Scanner sc= new Scanner(System.in);
- double num=sc.nextInt();
- String str="";
- double result=f(num);//这里运用递归函数求的结果
- while(true){
- str="1/"+(int)num+"+"+str;
- num=num-2;
- if(num<1)break;
- }
- System.out.println(str.substring(0,str.length()-1)+"="+result);
- }
- public static double f(double num){
- if(num==1.0||num==2.0) return 1/(num);
- return f(num-2)+1/num;
- }
- }
复制代码
代码没有写注释 只提供一种思路,希望楼主能自己看懂 对自己思考问题会有提高
|