递归-求第N项的值

 import java.io.InputStreamReader;
import java.io.BufferedReader;
/**
* Class  RecDemo
* Description  用递归求数列:1,3,6,10,15,21....   求第N项的值
* 基本思路第N项减掉第N-1项是一个等差数列,差值为1,f(n)=n+f(n-1)和阶乘的区别是f(n)=n*f(n-1)
* Company opendata
* Author:Chenlly
* Date: 2008-12-08
* Version 1.0
*/
public class RecDemo{
 public RecDemo(){
  //do something;
 }
 //从控制台输入数据
 public int putDate(){
  boolean bflag=false;
  int intValue=0;
  while(!bflag){
   try{
    InputStreamReader ir=new InputStreamReader(System.in);
    BufferedReader br=new BufferedReader(ir);
    String str=br.readLine();
    intValue=Integer.parseInt(str);
    if(intValue>0){
     bflag=true;
    }
   }catch(NumberFormatException ex){
    System.out.println("输入有误,请重新输入");
   }catch (Exception ex){
    ex.printStackTrace();
   }
  }
  return  intValue;
 }
 
 //递归函数,第n
 public int totalSeq(int n){
  if(n==1){
   return 1;
  }else{
   return (n + totalSeq(n-1));
  }
 }
 
 //主调函数
 public static void main(String []args){
  RecDemo rd=new RecDemo();
  System.out.println("please Enter a number:");
  int n=rd.putDate();
  int value=rd.totalSeq(n);
  System.out.println("the value is:"+value);
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值