A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【程序20】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
程序分析:请抓住分子与分母的变化规律。
public class Prog20{
        public static void main(String[] args){
                double n1 = 1;
                double n2 = 1;
                double fraction = n1/n2;
                double Sn = 0;
                for(int i=0;i<20;i++){
                  double t1 = n1;
                  double t2 = n2;
                  n1 = t1+t2;
                  n2 = t1;
                  fraction = n1/n2;
                  Sn += fraction;
                }
                System.out.print(Sn);
        }
}
【程序21】
题目:求1+2!+3!+...+20!的和
程序分析:此程序只是把累加变成了累乘。
public class Prog21{
        public static void main(String[] args){
                long sum = 0;
                for(int i=0;i<20;i++)
                  sum += factorial(i+1);
                System.out.println(sum);
        }
        //阶乘
        private static long factorial(int n){
                int mult = 1;
                for(int i=1;i<n+1;i++)
                  mult *= i;
                return mult;
        }
}
【程序22】
题目:利用递归方法求5!。
程序分析:递归公式:fn=fn_1*4!
public class Prog22{
        public static void main(String[] args){
                System.out.println(fact(10));
        }
        //递归求阶乘
        private static long fact(int n){
                if(n==1)
                  return 1;
                else
                  return fact(n-1)*n;
        }
}
【程序23】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
public class Prog23{
        public static void main(String[] args){
                System.out.println(getAge(5,2));
        }
        //求第m位同志的年龄
        private static int getAge(int m,int n){
                if(m==1)
                  return 10;
                else
                  return getAge(m-1,n)+n;               
        }
}
【程序24】
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
public class Prog24{
        public static void main(String[] args){
                int n = Integer.parseInt(args[0]);
                int i = 0;
                int[] a = new int[5];
                do{
                        a[i] = n%10;
                  n /= 10;
                  ++i;
                }while(n!=0);
                System.out.print("这是一个"+i+"位数,从个位起,各位数字依次为:");
                for(int j=0;j<i;j++)
                  System.out.print(a[j]+" ");
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马