原题链接:
牛牛学数列1
牛牛学数列2
牛牛学数列3
牛牛学数列4
牛牛学数列5
牛牛学数列6


牛牛学数列1

循环内部嵌套if判断,奇数+偶数-

#include <iostream>
using namespace std;
int main()
{
    int n,ans;
    cin >> n;
    for(int i=1;i<=n;i++)
    {
        if(i%2) ans+=i;
        else ans-=i;
    }
    cout << ans; 
    return 0;
}

牛牛学数列2

#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
    int n;
    double ans;
    cin >> n;
    for(int i=1;i<=n;i++)
    {
    ans+=1.0/i;
    }
    printf("%.6f\n",ans);
    return 0;
}

牛牛学数列3

共累加2*n-1个数,设两个变量(ans用于累加1-3+5..._ans用于累加1.0/ans),过程中用if..continue;筛掉偶数,用flag的0,1交替改变加减运算,最后输出ans。

#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
    int n,ans=0;
    double _ans=0;
    bool flag=1;
    cin >> n;
    for(int i=1;i<=2*n-1;i++)
    {
        if((i+1)%2) continue;//筛去偶数
        if(flag)//交替加减
        {
            ans+=i;
            _ans+=1.0/ans;
            flag=0;
        }
        else 
        {
            ans-=i;
            _ans+=1.0/ans;
            flag=1; 
        }
    }
    printf("%.3f\n",_ans);
    return 0;
}

牛牛学数列4

ans用于累加1+2+3... _ans用于累加ans

#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
    int n,ans=0,_ans=0;
    cin >> n;
    for(int i=1;i<=n;i++)
    {
        ans+=i;
        _ans+=ans;
    }
    printf("%d\n",_ans);

    return 0;
}

牛牛学数列5

设两个变量L,R初值都为1,每轮执行{L=L+R;R=R+L;},L,R将成为fib数列的后两项
if判断,偶数项则为n/2-1轮后的R,奇数项则为(n-1)/2轮后的L。

#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    if(n=1) cout << "1" << endl;//第一项是特例,单独输出
    else
    {
        int L=1,R=1;
        if(n%2)
        {
            for(int i=1,i<=((n-1)/2),i++)
            {
            L=L+R;
            R=R+L;
            }
        cout << L << endl;
        }
        else
        {
            for(int i=1,i<=(n/2-1),i++)
            {
                L=L+R;
                R=R+L;
            }
        cout << R << endl;
        }
    }

   return 0;
}

牛牛学数列6

将A1-An存入数组操作

#include <iostream>
using namespace std;
int main()
{
    long a[30],n;
    a[1]=0,a[2]=1,a[3]=1;
    cin >> n;
    for(int i=1;i<=(n-3);i++)
    {
        a[i+3]=a[i]+2*a[i+1]+a[i+2];
    }
    cout << a[n] << endl;
    return 0;
}