一、400以内亲密对数
#include<iostream>
using namespace std;
int fun(int n);void main()
{
for(int i=2;i<400;i++)
if(fun(fun(i))==i)
cout<<i<<' '<<fun(i)<<'\n';
}
int fun(int n)
{
int s=0;
for(int i=1;i<n;i++)
if(n%i == 0)
s+=i;
return s;
}
二、10000内平方和最大n
#include<iostream>
using namespace std;
void main()
{
int s=0,n;
for(int i=1;;i++)
{
s+=i*i;
if(s>10000)
{n=i-1;s=s-i*i;break;}
}
cout<<"1*1+2*2+···+"<<n<<"*"<<n<<"="<<s<<"<10000\n";
}
三、分数序列之和
#include<iostream>
using namespace std;
int f(int n)
{
if(n>2)
return f(n-1)+f(n-2);
if(n==1)
return 1;
if(n==2)
return 2;
}
#define N 10
void main()
{
int n;
cout<<"请输入要计算前多少项分数和(10内):\n";
cin>>n;
int a[N];
float s=0;
for(int i=0;i<n+1;i++)
{
a[i]=f(i+1);
cout<<a[i]<<(i%10==9?'\n':'\t');
if(!i) continue;
s+=float(a[i])/float(a[i-1]);
}
cout<<'\n';
for(int i=0;i<n;i++)
{
if(i!=0)
cout<<"+";
cout<<a[i+1]<<'\/'<<a[i];
}
cout<<"\n前n项总和为:";
cout<<s<<endl;
}
四、级数展开cosx
#include<iostream>
using namespace std;
#include<math.h>
int factorial(int n)
{
if(n>1)
return n*factorial(n-1);
return 1;
}
float f(float x,int n)
{
return pow(-1.0,n)*pow(x,2*n)/factorial(2*n);
}
#define E 0.00001
void main()
{
float x;
cout<<"请输入x的值:\n";
cin>>x;
float s=0;
int i;
for(i=0;;i++)
{
if(abs(f(x,i))<E)
break;
}
cout<<"第"<<i+1<<"项:"<<f(x,i)<<'\n';
cout<<"第"<<i<<"项:"<<f(x,i-1)<<endl;
}
五、求方程解
#include<iostream>
using namespace std;
#define _USE_MATH_DEFINES
#include<math.h>
#define E 0.00001
float fx(float x)
{
return cos(x/2)-sin(x);
}
void find_x(float a[])
{
for(;;)
{
if(fx(a[0])>0)
fx((a[0]+a[1])/2)>0?a[0]=((a[0]+a[1])/2):a[1]=((a[0]+a[1])/2);
else
fx((a[0]+a[1])/2)<0?a[0]=((a[0]+a[1])/2):a[1]=((a[0]+a[1])/2);
if(abs(fx((a[0]+a[1])/2))<E)
break;
}
}
void main()
{
float bound[2]={0,M_PI};
find_x(bound);
float x_root=(bound[0]+bound[1])/2;
cout<<"cos(x/2)-sinx=0在0到Pi之间的根为:"<<x_root<<'\n';
cout<<"cos"<<x_root/2<<"="<<cos(x_root/2)<<"\tsin"<<x_root<<"="<<sin(x_root)<<endl;
}