小红希望你构造一个长度为n的排列,满足∑i=1n∗i恰好是3的倍数。 定义排列是一个长度为n的数组,满足ai∈[1,n]且不存在两个元素相同。
问题描述
给定一个正整数 n,要求构造一个 1 到 n 的排列(即每个数各出现一次),使得加权和(即所有位置 i 与该位置上数字 a[i] 的乘积之和)能被 3 整除。例如,对于排列 [1,2,3,4],加权和为 1×1 + 2×2 + 3×3 + 4×4 = 30,30 能被 3 整除。
初始排列的性质
我们先考虑初始排列为顺序排列 [1,2,...,n]。此时加权和为 1² + 2² + … + n²。注意:对于任意正整数 i,其平方模 3 的值只有两种情况: