第一题就卡了,帮帮我呗(@_@)

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]<<" ";
	}

记得给解决方案 :slightly_smiling_face:

3 个赞

8.8暑假集训-一维数组(下) 快点进来,超详细! - 经验分享区 - 信友队论坛 (xinyoudui.com)

看解决方案

顺便给我一个

给了一个,另一个给不了了sorry

www

:+1: :+1:第一题就卡住了