高考数学题用java,Python,js,php等语言详解

数学题:已知数列{an}的各项都是正数,且满足:a0=1,an+1=(4﹣an),n∈N. (1)证明an<an+1<2,n∈N; (2)求数列{an}的通项公式an

证明:

  1. 首先证明an<an+1,n∈N。由题目的定义可得,

an+1 = 4 - an > 0,∴an < 4。

∵an < 4,又因为an+1 = 4 - an,∴an+1 > 0。

∴an<an+1,n∈N。

  1. 接着证明an+1<2,n∈N。同样由题目的定义可得,

an+1 = 4 - an < 2,∴an > 2。

∴an+1<2,n∈N。

综上,可得an<an+1<2,n∈N。

求通项公式:

由an+1 = 4 - an 可得,

an+1 + an = 4,

an + an-1 = 4,

…,

a1 + a0 = 4,

a0 = 1。

将各式相加,可得

an+1 + 2an + … + a1 + a0 =4(n+1)。

因此,

an + 2an-1 + … + 2a1 + a0 =4n,

an + 2(an-1 + … + 2a1 + a0) =4n。

∴an = 4n - 2(an-1 + … + 2a1 + a0),n>0。

因为a0 = 1,代入上式可得,

a1 = 3,

a2 = 1,

a3 = 3,

a4 = 1,

可得,an的奇数项为3,偶数项为1。

∴an的通项公式为:

an = {
3,n为奇数,
1,n为偶数。
}

Java代码实现:

public class Sequence {
    public static void main(String[] args) {
        int n = 10; // 求前10项
        double[] a = new double[n];
        a[0] = 1;
        for (int i = 1; i < n; i++) {
            a[i] = 4 - a[i - 1];
        }
        for (int i = 0; i < n; i++) {
            System.out.println("a[" + i + "] = " + a[i]);
        }
    }
}

Python代码实现:

n = 10 # 求前10项
a = [0] * n
a[0] = 1
for i in range(1, n):
    a[i] = 4 - a[i - 1]
for i in range(n):
    print("a[{}] = {}".format(i, a[i]))

C++代码实现:

#include 
using namespace std;

int main() {
    int n = 10; // 求前10项
    double a[n];
    a[0] = 1;
    for (int i = 1; i < n; i++) {
        a[i] = 4 - a[i - 1];
    }
    for (int i = 0; i < n; i++) {
        cout << "a[" << i << "] = " << a[i] << endl;
    }
    return 0;
}

JavaScript代码实现:

let n = 10; // 求前10项
let a = new Array(n);
a[0] = 1;
for (let i = 1; i < n; i++) {
    a[i] = 4 - a[i - 1];
}
for (let i = 0; i < n; i++) {
    console.log("a[" + i + "] = " + a[i]);
}

PHP代码实现:


$n = 10; // 求前10项
$a = array();
$a[0] = 1;
for ($i = 1; $i < $n; $i++) {
    $a[$i] = 4 - $a[$i - 1];
}
for ($i = 0; $i < $n; $i++) {
    echo "a[" . $i . "] = " . $a[$i] . "\n";
}
?>

C#代码实现:

using System;

class Sequence
{
    static void Main()
    {
        int n = 10; // 求前10项
        double[] a = new double[n];
        a[0] = 1;
        for (int i = 1; i < n; i++)
        {
            a[i] = 4 - a[i - 1];
        }
        for (int i = 0; i < n; i++)
        {
            Console.WriteLine("a[" + i + "] = " + a[i]);
        }
    }
}

Objective-C代码实现:

#import 

int main() {
    @autoreleasepool {
        int n = 10; // 求前10项
        double a[n];
        a[0] = 1;
        for (int i = 1; i < n; i++) {
            a[i] = 4 - a[i - 1];
        }
        for (int i = 0; i < n; i++) {
            NSLog(@"a[%d] = %f", i, a[i]);
        }
    }
    return 0;
}

Go代码实现:

package main

import "fmt"

func main() {
    n := 10 // 求前10项
    a := make([]float64, n)
    a[0] = 1
    for i := 1; i < n; i++ {
        a[i] = 4 - a[i - 1]
    }
    for i := 0; i < n; i++ {
        fmt.Printf("a[%d] = %f\n", i, a[i])
    }
}

以上代码均可输出数列的前10项。

你可能感兴趣的:(高考,java,开发语言)