OJ 귀속 2.2 피폴라치 수열
아래를 보십시오.
어디 있는지 알아맞혀 봐.
#include
int n,m,a[25]={0,1,1};
int wht(int n){
if(a[n]!=0) return a[n];
else a[n]=wht(n-2)+wht(n-1);
return a[n];
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&m);
printf("%d",wht(m));
}
}
비교해 보니 무엇이 발견되었다.#include
int n,m,a[25]={0,1,1};
int wht(int n){
if(a[n]!=0) return a[n];
else a[n]=wht(n-2)+wht(n-1);
return a[n];
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&m);
printf("%d
",wht(m));
}
}
바로
적어!됐어!하나!개!비었어!격!!!!!!!!!!
우우우우우.
B~~~~~~U~~~~~~~~T
결국 발견했어.
공교롭게도 이 2.2리의 문제는 모두 이곳에서 틀렸다.그래서 작은 디테일도 모든 것을 결정할 수 있다.기억해.
잠깐만!!!!!!!!!!!
방법을 잊어버린 것 같아!
오, 이것은 내가 처음으로 귀속으로 문제를 풀었기 때문에 이 비교적 기초적인 것을 골랐다.
우선 그들 사이의 관계를 찾아야 한다. Fn=F(n-1)+F(n-2);F1=1;F2=2
그리고 계속 밀어: F(n-1) = F(n-2) + F(n-3);
그래서 만들었어요.
모르면 코드를 잘 봐.
또 하나의 방법은 비교적 점차적으로 미루는 것이다.
#include
using namespace std;
int a,n;
int b[1000000];
int main()
{
int k=0;
cin>>n;
while(n-k!=0){
cin>>a;
b[1]=1;
b[2]=1;
for(int i=3;i<=a;i++){
b[i]=b[i-1]+b[i-2];
}
cout<<b[a]<<endl;
k++;
}
}
이것도 마찬가지입니다.코드를 보면 알 거예요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
순환 경기 일정(귀속 해법)문제 설명: n=2k 선수가 테니스 사이클을 치러야 한다.지금 요구를 충족시키는 경기 일정표를 설계해야 돼요. (1) 모든 선수는 다른 n-1개 선수와 한 번씩 시합해야 한다. (2) 하루에 한 번만 경기할 수 있는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.