6 条题解
-
4
首先要建变量,用long long 类型,因为int类型太小,条件是循环变量为<n+2。因此代码是:
#include<iostream> using namespace std; long long int fd[51]; int main(){ int n; cin>>n; for(int i=2;i<=n+1;i++) cin>>fd[i]; for(int i=2;i<=n+1;i++) fd[i]+=fd[i-1]+fd[i-2]; for(int i=2;i<=n+1;i++) cout<<fd[i]<<endl; }
-
0
我们先在循环输入数组a[60],用int会爆,所以用long long,再循环设成后输出的数组的每个数据,条件是循环变量 <n+2。因此代码是
#include<bits/stdc++.h>
using namespace std;
long long a[60];
int main(){ int n;
cin>>n;
for(int i=3;i<=n+2;i++) cin>>a[i];
for(int i=3;i<=n+2;i++) a[i]=a[i-1]+a[i-2]+a[i];
for(int i=3;i<=n+2;i++) cout<<a[i]<<endl; }
-
-1
首先,我们先循环输入数组的每个数据,再循环逐个设成最后输出的数组的每个数据,而最后输出的数组的每个数据怎么改的公式是:数组名[循环变量]=数组名[循环变量-1]+数组名[循环变量-2]+数组名[循环变量],但问题是数组的第一和第二的数据怎么求,我们可以把第一和第二的数据先设为0,再逐个输入数据,然后把循环变量设为3,条件是循环变量<n+2,
就可以了,最后输出数组的各数据(除了第一和第二的数据)就完成了。
代码如下:
#include<iostream>
using namespace std;
long long a[60];
int main(){ int n;
cin>>n;
for(int i=3;i<=n+2;i++) cin>>a[i];
for(int i=3;i<=n+2;i++) a[i]=a[i-1]+a[i-2]+a[i];
for(int i=3;i<=n+2;i++) cout<<a[i]<<endl;
}
- 1
信息
- ID
- 750
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 60
- 已通过
- 19
- 上传者