原题链接:
牛牛学数列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;
}
京公网安备 11010502036488号