题解 | #小红的排列构造#

小红的排列构造

https://www.nowcoder.com/practice/2b0a9318cc0740d1a78eec06162e7bea

解题思路

注意到所有大于 2 的偶数都是合数。
所以对于 i>3 的所有情况,令 a[i]=i 即可,因为 i+i 一定是偶数。
特别地, 1 2 3 对应 3 2 1 ,这样能构造出 4 4 4 ,也是偶数。
n<3 时无解,因为 1+1=2 ,1+2=3 ,都是素数。

代码

#include <iostream>
using namespace std;
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n,i;
	cin>>n;
	if(n<3)
	{
		cout<<"-1";
		return 0;
	}
	cout<<"3 2 1";
	for(i=4;i<=n;++i)
		cout<<' '<<i;
	return 0;
}
import java.util.Scanner;
public class ZT7 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt(),i;
        if(n<3){
            System.out.println(-1);
            System.exit(0);
        }
        System.out.print("3 2 1");
        for(i=4;i<=n;++i)
            System.out.print(" "+i);
    }
}
n=int(input())
if(n<3):
    print(-1)
    exit(0)
print(3,2,1,end=' ')
for i in range(4,n+1):
    print(i,end=' ')

算法及复杂度

  • 算法:枚举。
  • 时间复杂度:
  • 空间复杂度:
全部评论

相关推荐

2024-11-14 15:03
西安电子科技大学 C++
Java抽象带篮子:安卓怎么你了
投递荣耀等公司9个岗位
点赞 评论 收藏
分享
2024-11-26 18:15
门头沟学院 后端
M_bao:换个排版吧哥们,看着费劲
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务