中级光能
他是有规律的!
你可以用数学的找规律!
1、1、2、3、5、8、13、21、34、55、89、144……
奇、奇、偶、奇、奇、偶、奇、奇、偶……
新手天翼
for(int i=1;i<=10000;i++)
{
if(i%3==0)
{
s++;
}
cout<<s;
这是输出偶数的数量
for(int i=1;i<=10000;i++)
{
if(i%3!=0)
{
s++;
}
cout<<s;
这是奇数的数量
王子逸在2020-06-06 14:48:25追加了内容
当然 for只是举个栗子 并不是那样写的
中级天翼
设斐波那契数列的通项为An。
(事实上An = (p^n - q^n)/√5,其中p = (√5 - 1)/2, q = (√5 + 1)/2。但这里不必解它)
然后记
Sn = A1 + A2 + ... + An
由于
An = Sn - S(n-1) = A(n-1) + A(n-2) = S(n-1) - S(n-2) + S(n-2) - S(n-3)
= S(n-1) - S(n-3)
其中初值为S1 = 1, S2 = 2, S3 = 4。
所以
Sn - 2S(n-1) + S(n-3) = 0
从而其特征方程是
x^3 - 2x^2 + 1 = 0
即
(x - 1)(x^2 - x - 1) = 0
不难解这个三次方程得
x1 = 1
x2 = p
x3 = q
(p, q值同An中的p, q)。
所以通解是
Sn = c1 * x1^n + c2 * x2^n + c3 * x3^n
其中c1,c2,c3的值由S1,S2,S3的三个初值代入上式确定。我就不算了。
高级光能
新手天翼
然后记
Sn = A1 + A2 + ... + An
由于
An = Sn - S(n-1) = A(n-1) + A(n-2) = S(n-1) - S(n-2) + S(n-2) - S(n-3)
= S(n-1) - S(n-3)
其中初值为S1 = 1, S2 = 2, S3 = 4。
所以
Sn - 2S(n-1) + S(n-3) = 0
从而其特征方程是
x^3 - 2x^2 + 1 = 0
即
(x - 1)(x^2 - x - 1) = 0
不难解这个三次方程得
x1 = 1
x2 = p
x3 = q
(p, q值同An中的p, q)。
所以通解是
Sn = c1 * x1^n + c2 * x2^n + c3 * x3^n
其中c1,c2,c3的值由S1,S2,S3的三个初值代入上式确定。我就不算了。
新手天翼
然后记
Sn = A1 + A2 + ... + An
由于
An = Sn - S(n-1) = A(n-1) + A(n-2) = S(n-1) - S(n-2) + S(n-2) - S(n-3)
= S(n-1) - S(n-3)
其中初值为S1 = 1, S2 = 2, S3 = 4。
所以
Sn - 2S(n-1) + S(n-3) = 0
从而其特征方程是
x^3 - 2x^2 + 1 = 0
即
(x - 1)(x^2 - x - 1) = 0
不难解这个三次方程得
x1 = 1
x2 = p
x3 = q
(p, q值同An中的p, q)。
所以通解是
Sn = c1 * x1^n + c2 * x2^n + c3 * x3^n
其中c1,c2,c3的值由S1,S2,S3的三个初值代入上式确定。我就不算了。
初级光能
你这个头像……,真香!
函数:
使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1。
for循环:
从底层向上运算,
a(0)+a(1)->a(1) //第0个数字+第1个数字=第2个数字
a(1)+a(1)->a(2) //第1个数字+第2个数字=第3个数字
a(2)+a(3)->a(5) //第2个数字+第3个数字=第4个数字
······
a(n-1)+a(n-2)->a(n)
因此,在循环中只要定义三个变量,便能将最后的f(n)求出来
function fn(n){
if(n==1|n==2){
return 1;}
//因为斐波那契数列格式为:1、1、2、3、5、8、13、21、34、......,n=1和n=2的时候都是输出1
return fn(n-1)+fn(n-2);
//不断调用自身函数,n-1是穿进去的参数的前一次,就是最后n的前一个数字。所以n-2是最后传入参数的前两个数字。
}
//用函数写出斐波那契数列
var n=parseInt(prompt('请输入一个数字'));
var a1=1;
var a2=1;
var a3=0;
for(var i=2;i<=n;i++){//因为前两个数都是1,所以要从i=2开始,就是前两个数的1+1=2,i的初始值其实是第三个数
a3=a1+a2;//第三个数等于第一个数加上第二个数
a1=a2;//第一个数就变成了之前的第二个数
a2=a3;//第二个数就变成了刚刚的第三个数
}
console.log(a3);
//使用for循环写出斐波那契数列
作者:搬不完的元猿员
链接:https://www.jianshu.com/p/16e668d9bf72
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
高级天翼
中级天翼
@黄子阳 知道,他是我们班的同学,数学已经学到初中了。
丁博扬在2020-06-04 16:20:32追加了内容
这是我在百度上查的