1. 西游记之八戒寻翠兰
题目ID:9266必做题100分
最新提交:
0 分
历史最高:
0 分
时间限制: 1000ms
空间限制: 65536kB
题目描述
【问题描述】
取经结束后 八戒回到高老庄看望翠兰,,可谁知高老太公将女儿藏进了宝塔...想要找到翠兰,就要通过考题。已知:
1.翠兰藏在了一座宝塔的某一层,八戒从第0层开始搜索。
2.上一层塔需要 6s,下一层塔需要 4s,搜寻一层需要 5s。
3. 八戒要搜索n个楼层,必须按照给定的楼层顺序依次搜寻。
4.若到达某一层搜寻结束所用的总时间数(从第 0 层开始算)与楼层数之和为素数,则认为翠兰极有可能出现在该层。
5.八戒记忆力很好,不会搜索重复的楼层
计算并输出这些层数中所有可能的层数,以空格隔开,若没有则输出"No"。
输入:
两行,第一行一个整数n,表示待搜索的楼层数量,第二行n个整数,表示搜索的楼层编号a[i],楼层编号不会出现重复的情况。
输出:
一行,若干个整数,按顺序从小到大分别表示翠兰可能出现的楼层数。(即到达某一层搜寻结束所用的总时间数与楼层数之和为素数),无符合的条件楼层,则直接输出“No”。
【样例输入】
3
2 3 1
【样例输出】
2 3
【数据要求】
0<=n<=100, 0<=a[i]<=100;
问题都放问题讨论区,谢谢
核心代码
int b=0,h=0;
for(int i=0;i<n;i++){
if(z[i-1].a>z[i].a){
// 下楼时间
time+=(z[i-1].a-z[i].a)*4+5;
}else{
// 上楼时间
time+=(z[i].a-z[i-1].a)*6+5;
}
int v=0,m=time+z[i].a;
// 判断是否是素数
for(int u=1;u<=m;u++){
if(m%u==0) v++;
}
if(v==2){
//如果是素数
c[h]=z[i].a;
h++;
b=1;
//标记
}
}
记得排序输出
if(b==0){
//没被标记输出No
cout<<"No";
return 0;
}
// 排序
sort(c,c+h);
for(int i=0;i<h;i++){
// 输出
cout<<c[i]<<" ";
}
记得给解决方案
3 个赞
看解决方案
顺便给我一个
给了一个,另一个给不了了sorry
www
第一题就卡住了