问题描述:
设有函数 f(n)=n 0<=n<=5,f(n)=f(n-1)-f(n-5) n>5。用非递归方式解决
#include <iostream>
#include <queue>
#include <cmath>
using namespace std;
int f(int n){
queue<int> q;
int sum=0,temp;
q.push(n);
while(!q.empty()){
temp=q.front();
q.pop();
if(abs(temp) <= 5 && abs(temp) >=0){
sum+=temp;
//cout<<sum<<endl;
}
else if( abs(temp) > 5){
q.push((temp/abs(temp))*(abs(temp)-1));
q.push(-1*(temp/abs(temp))*(abs(temp)-5));
}
}
return sum;
}
int main(){
int a;
cin>>a;
cout<<f(a)<<endl;
return 0;
}
2120

被折叠的 条评论
为什么被折叠?



