数列的前3项都为1,从第4项开始,每项都是其前3项的和:1, 1, 1, 3, 5, 9, 17, … 请你编程求出数列第N项的4位尾数与90000之和。输入一个正整数N,输出所求的和。希望能有解题思路
扩展版的斐波那契数列,方法跟这个一样。
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
int main()
{
vector<int> res;
res.push_back(1);
res.push_back(1);
res.push_back(1);
int n;
cout<<"输入一个数字"<<endl;
cin>>n;
if(n==1||n==2||n==3)
{
cout<<"和为:"<<1+90000;
}
else
{
for(int i=3;i<n;++i)
{
res[i]=res[i-1]+res[i-2]+res[i-3];
}
}
string s_val=to_string(res[n-1]);
if(s_val.size()>4)
{
string s=s_val.substr(s_val.size()-4,4);
int val=atoi(s.c_str());
cout<<"和为:"<<val+90000;
}
else
{
cout<<"和为:"<<res[n-1]+90000;
}
return 0;
}