目录
有一分数序列,2/1,3/2,5/3,8/5,13/8,21/13....求出这一序列的前21项的和
求斐波那契数列的前40个值
//f1=1 f2=1 f3往后等于前两项的和
#include<bits/stdc++.h>
using namespace std;
int main(){
long f1=1,f2=1;
for(int i=1;i<=20;i++){
// cout<<f1<<" "<<f2<<" ";
cout<<setw(12)<<f1<<setw(12)<<f2; //输出字符宽度为12 每次输出两个数
f1=f1+f2;
f2=f2+f1;
if(i%2==0) cout<<endl;
}
return 0;
}
有一分数序列,2/1,3/2,5/3,8/5,13/8,21/13....求出这一序列的前21项的和
#include<bits/stdc++.h>
using namespace std;
int main(){
float a=1,b=2,t=1;//a是分子,b是分母,t=a;
float c,sum=0;//c是商,sum是和
for(int i=1;i<=20;i++){
c=b/a;
sum=sum+c;
a=b;
b=b+t;
t=a;
}
cout<<sum<<endl;
return 0;
}
猴子吃桃问题
第一天吃了一半多一个,第二天吃了一半多一个...到第十天只剩了一个 问第一天有多少个
//第十天:1
//第九天:1*2+2=4
//第八天:4*2+2=10...
第一天 1534
用递归做
#include<bits/stdc++.h>
using namespace std;
int sumeat(int day){
if(day==10) return 1;
else return 2*sumeat(day+1)+2;//比如第九天
}
int main()
{
int sum=0;
sum=sumeat(1);
cout<<sum<<endl;
return 0;
}
用while
#include<bits/stdc++.h>
using namespace std;
int main(){
int day=9,x1=0,x2=1;
while(day>0){
x1=2*x2+2;//x1=4
x2=x1;
day--;
}
cout<<x1<<endl;
return 0;
}