BEGIN-1:A+B问题
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
cout<<a+b;
return 0;
}
Tips:本来以为会有数据溢出的问题,没想到比较简单,如果数据溢出的话数据类型改为long long int即可。
BEGIN-2:序列求和
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n;
cin>>n;
cout<<n*(n+1)/2;
return 0;
}
Tips:因为是long long int型,直接除以2可能会向下取整,所以先乘(n+1)避免向下取整。
BEGIN-3:圆的面积
#include<bits/stdc++.h>
#define PI 3.14159265358979323
using namespace std;
int main()
{
int r;
cin>>r;
cout<<setiosflags(ios::fixed)<<setprecision(7)<<PI*r*r;
return 0;
}
Tips:
a.这个题涉及到π的精确取值,题干给出了两种方法,分别是使PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。
b.C++中保留指定小数位数
输出m,保留n位小数:
cout<<setiosflags(ios::fixed)<<setprecision(n)<<m;
输出m,数据 有效位数为p:
cout<<setprecision(p)<<m;
BEGIN-4:Fibonacci数列
基本操作(然而错辽)
#include<bits/stdc++.h>
using namespace std;
int Fibonacci(int n1)
{
if(n1<3)
return 1;
return Fibonacci(n1-1)+Fibonacci(n1-2);
}
int main()
{
int n;
cin>>n;
cout<<Fibonacci(n)%10007;
return 0;
}
AC操作
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
if(n<3)
{
cout<<"1";
return 0;
}
int *a=new int[n+1];
a[1]=1;
a[2]=1;
for(int i=3;i<=n;i++)
{
a[i]=(a[i-1]+a[i-2])%10007;
}
cout<<a[n];
return 0;
}
Tips:数据集范围较大,最大可以达到n=999999,采用基本操作会使数据溢出。所以对斐波那契数列的每一个数字都预先处理。