1、存在如下数列1、1、2、4、7、13、24、44、81、149......现要求该数列第n项的值(n从O开始算)。 程序运行结果: 1/2 输入:4 输出:7 输入:9 输出:149

16 篇文章 3 订阅
9 篇文章 1 订阅

**

题目

**
/*

  • 1、存在如下数列1、1、2、4、7、13、24、44、81、149…现要求该数列第n项的值(n从O开始算)。
    程序运行结果:
    1/2
    输入:4
    输出:7
    输入:9
    输出:149

*/

我没有用递归直接用的循环,n4=n1+n2+n3(前三项相加等于第n项)

代码:

public class One127 {

	public static void main(String[] args) {
		System.out.println("第n项:");
		Scanner sc= new Scanner(System.in);		
		int n=sc.nextInt();
		
		int n1=1,n2=1,n3=2;
		int n4=4;
		if (n<3) {
			System.out.println("第"+n+"项为:"+1);
		}else if(n==3){
			System.out.println("第"+n+"项为:"+2);
		}else {
			for(int i=2;i<n;i++) {
				n4=n1+n2+n3;
				n1=n2;
				n2=n3;
				n3=n4;
			}
			System.out.println("第"+n+"项为:"+n4);
		}
		sc.close();
	}
}

运行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 求1到100的数列和,即1+2+3+...+100的结果。 解法一:暴力求和法 将1到100的数列依次相加,即可得到结果。 1+2+3+...+98+99+100=505 解法二:等差数列求和法 1到100的数列是一个等差数列,公差为1,首项为1,末项为100。根据等差数列求和公式,可得: S = n(a1 + an) / 2 其中,S为数列和,n为数列项数,a1为首项,an为末项。 将n取100,a1取1,an取100代入公式,即可得到结果。 S = 100(1 + 100) / 2 = 505 因此,1到100的数列和为505。 ### 回答2: 这道题是一道简单的数学题,初学生可能会想到将数字一个一个相加,这样会非常耗时。其实,如果将数列按照相加的顺序倒过来,即100 99 98 ...... 3 2 1,再将相邻的两个数相加,就有100+1=101,99+2=101,98+3=101......等等,这样每两个数字的和都是101,而100个数字分为了50组,因此这个数列的和就是101*50=5050。 实际上,在学习数学中,我们经常遇到各种类型的数列求和,如等差数列、等比数列等等。这些问题都可以通过找规律或者数学公式来解决。 对于等差数列,其首项为a1,公差为d,第n项为an,则这个等差数列的前n项和Sn为:Sn = n(a1+an)/2。 对于等比数列,其首项为a1,公比为q(q≠0),第n项为an,则这个等比数列的前n项和Sn为:Sn = a1(1-q^n)/(1-q)。 这些公式其实并不难记,但在使用过程中,我们需要适当地进行变形和加减混合运。 通过数列求和问题,可以锻炼我们的数学思维能力和逻辑推理能力。在学习过程中,我们可以多动手练习、多思考和与同学讨论,不断提高自己的数学能力。 ### 回答3: 首先,我们可以使用等差数列求和公式来求解。由于这个数列是从1开始,公差为1,且共有100个数,所以可以得到: 1+2+3+...+100 = (1+100)*100/2 = 5050 上述计过程中用到了等差数列求和公式,即S_n = (a_1+a_n)*n/2,其中a_1为数列的首项,a_n为数列的末项,n为数列的项数。 除此之外,我们还可以尝试使用递归的方式求解。具体思路是,对于一个数n,它的前一个数为n-1,则数列的和可以表示为n + Sum(n-1),其中Sum(n-1)表示前n-1个数的和。当n=1时,前面没有数,所以Sum(1)=1。因此,我们可以写出如下的递归函数: def Sum(n): if n == 1: return 1 else: return n + Sum(n-1) 最后,我们在调用Sum(100)时,便可以得到数列1到100的和,即5050。这种方法可以帮助我们更好地理解递归的思想,也是一种比较通用的求解数列和的方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值