题目链接:P5613
题目:
输入格式:
讲解开始:
首先还是照常输入
int n,m,k;
cin>>n>>m>>k;
int num=0;
int a[k]={0};
for(int i=0;i<k;i++){
cin>>a[i];
}
因为输入格式中的第二行让我们输入k个数字,所以直接用一个长度为k的数组输入即可!
然后,进入最重要的阶段!
开始先定义两个变量 i ,然后进入一个while循环,退出条件是 i 小于 n ,在while中 i 每一次加上 m ,也就是每一秒上了 m 层台阶,而之前定义的num就代表了时间,那么只要“num++”即可。同时我们还要判断 i 是不是等于输入第二行输入的 k 个数字,所以,我们要搞一个for循环,从零一直到 k,判断 i 是不是等于数组 a 中的任意一个数据,如果是就“m++”(题目是这么讲的)。最后输出num就可以了!
这是完整代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,k;
cin>>n>>m>>k;
int num=0;
int a[k]={0};
int sum=0;
for(int i=0;i<k;i++){
cin>>a[i];
}
int i=0;
while(i<n){
i+=m;
num++;
for(int j=0;j<k;j++){
if(i==a[j]){
m++;
}
}
}
cout<<num;
return 0;
}
讲解完毕,再见!