public static void main(String[] args) { int a[] = new int[100]; for (int i = 0; i < 100; i++) { int t = i / 12; if (t % 2 == 0) a[i] = 1 + i % 12; else a[i] = 12 - (i % 12); System.out.println(a[i]); } }
我看到有人说程序是拿来用的,不是拿来显示技术的,哎,我就辛苦了5分钟,思考了4分半,杀死无数脑细胞,然后再花半分钟修改了一下一楼的程序,给那个所谓拿来用的朋友用吧 int a[]=new int[100]; for(int i=0;i<a.length;i++){ int n=i/12; a[i]=(i%12+1)*(1-(n%2)*2)+(n%2)*(13); }这个应该没有技术含量了吧?纯粹的数学表达式,通俗易懂,小学数学竞赛(如果他们知道模操作的话)应该比这个难吧!~
int a[]=new int[100];
for(int i=0;i<a.length;i++){
int n=i/12;
a[i]=n%2==0?i%12+1:12-i%12;
}
public class Test {
public static void main(String[] args) {
int a[]=new int[100];
int i=0,j=12,n=0;
for(i=0;i<a.length;i++){
a[i]=i+1-12*2*n;
if((i+1)%12==0){
for(j=12;j>=1;j--){
a[++i]=j;
if((i+1)%12==0){
n++;
break;
}
}
}
}
for(i=0;i<a.length;i++)
System.out.println(a[i]);
}
}
if(director == 1){
ary[i]= director*n;
n++;
if(n>12){
director = -1;
n=12;
}
}else{
ary[i]= n;
n--;
if(n==0){
n=1;
director = 1;
}
}
}
class Algorithm
{
public static int[] algorithm(int[] array) {
//整整的12一圈次数
int n = array.length / 12;
//剩余不足12一圈的个数
int m = array.length % 12;
//数组下标
int index = 0; for(int i=0;i<n;i++) {
//如果12一圈的次数是奇数,从1-12
if(i % 2 == 0) {
for(int j=1;j<=12;j++) {
array[index++] = j;
}
}
//如果12一圈的次数是偶数,从12-1
else {
for(int j=12;j>=1;j--) {
array[index++] = j;
}
}
}
//剩下不够12一圈的数
//上面的最后一圈是从12-1
if(array[--index] == 1) {
for(int i=1;i<=m;i++) {
array[++index] = i;
}
}
//上面的最后一圈是1-12
else {
for(int i=12;i>=1;i--) {
array[++index] = i;
}
} return array;
} public static void main(String[] args)
{
int[] array = new int[100];
algorithm(array);
System.out.println(Arrays.toString(array));
}
}
int a[] = new int[100];
for (int i = 0; i < 100; i++) {
int t = i / 12;
if (t % 2 == 0)
a[i] = 1 + i % 12;
else
a[i] = 12 - (i % 12);
System.out.println(a[i]);
}
}
int i=0;
for(int j=0;j<100;j++){
a[j]=(j/12)%2==0?++i:i--;
}
看过一楼的之后才想出来的
{
int[] array=new int[100];
for (i=0;i<array.length;i++)
{
if(i<12)
array[i]=i;
else
array[i]=i%12
System.out.println(array[i]);
}
}
有很多朋友说一楼牛人的代码看不懂,小生在这不自量力来解释一下
首先,用n=i/12来判断数组中的元素有12来量是第几圈
0~11为0圈
12~23为1圈
......其次,要明白i%12+1是和12-i%12是和n的奇偶有关系的用n%2==0来判断
当为偶数圈的时候(n%2==0)
数组中元素的值应该递增,用第一个式子表示(i%12+1)
当为奇数圈的时候(n%2不等于0)
数组中的元素应该递减,用第二个式子表示(12-i%12)
单行组 1 2 3...12
偶行组 12 11... 1(i/12)%2 判断i在单行组还是偶行组如果是单行组: i%12+1
如果是双行组: 12-i%12 (相当于一个求补的操作)不知道说的对不对
int a[]=new int[100];
for(int i=0;i<a.length;i++){
int n=i/12;
a[i]=(i%12+1)*(1-(n%2)*2)+(n%2)*(13);
}这个应该没有技术含量了吧?纯粹的数学表达式,通俗易懂,小学数学竞赛(如果他们知道模操作的话)应该比这个难吧!~