Description
已知a[1]=1,a[2]=1,a[n]=a[n-1]+a[n-2],求解a[n]的值,n<=90
Input
多组输入,每组一行,输入n,n<=90
Output
一行一个a[n]
#include<iostream>
using namespace std;
int main() {
int n;
while (cin >> n) {
int a[100];
for (int i = 3; i <= n; i++) {
a[1] = 1;
a[2] = 1;
a[i] = a[i - 1] + a[i - 2];
}
cout << a[n];
}
return 0;
}
OJ提交后结果:
Wrong Answer50%
通过多次提交,我发现有三个问题,一是没有多次循环,二是没用long long,三是不用判断是否为1或2
-
//
// main.cpp
// 递归
//
// Created by 言清欢 on 2021/2/3.
//
#include <iostream>
#include<stdio.h>
using namespace std;
int fab(int n){
int ret;
if (n==1||n==2){
return 1;
}
ret=fab(n-1)+fab(n-2);
return ret;
}
int main(){
int n;
cout<<"请输入序号:";
cin>>n;
cout<<fab(n)<<endl;
}
你的算法没有问题,但是不符合题意
题目要求多组输入,全部输入完之后执行,然后多组输出
不是输入一组,输出一组,再输入一组,再输出一组
你得用数组把输入存起来,然后循环