一个循环 不知道怎么编 愁死了

wjjbfq 2008-03-14 10:11:35
请教一个问题 要求输出以下格式
1 3 6 10 15
2 5 9 14
4 8 13
7 12
11
这个用循环怎么编啊 愁死我了
先谢谢啦
...全文
293 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjjbfq 2008-03-14
  • 打赏
  • 举报
回复
import java.io.*;
public class app{
public static void main(String args[]){


int i,n,k,j=0,m=5;

for(n=1;n<=5;n++)
{
k=0;
for(i=n;i<=m;i++)
{

System.out.print(i+k+j);
k=i+k;
}
System.out.println();
j=j+n;
j--;
}
}
}

终于出来了 同样谢谢上面的师兄啦
fys249931556 2008-03-14
  • 打赏
  • 举报
回复
晕。。看了半天没看出规律。。
zapdos 2008-03-14
  • 打赏
  • 举报
回复
大概这样可以吧
随手写的,没有整理,所以有点乱,凑合着用吧

public class test{
test(int m,int n){
int[][] rule = new int[][]{{1,0},{-1,1},{0,1},{1,-1}};
int[][] map = new int[m][n];
for(int i=0,j=0,k=0,c=0;k<m*n;k++){
map[i][j] = k;
i += rule[c][0];
j += rule[c][1];
if(i>=m||j>=n){
int[] tmp = rule[c];
if(i>=m)
rule[0] = new int[]{0,1};
else if(j>=n)
rule[2] = new int[]{1,0};
i -= tmp[0];
j -= tmp[1];
if(!(c==0||c==2)) c=c>=rule.length-1?0:c+1;
i += rule[c][0];
j += rule[c][1];
}
if(c==0||c==2||((i==0||i==m-1)&&c==1)||((j==0||j==n-1)&&c==3)) c=c>=rule.length-1?0:c+1;
}
for(int i=0;i<map.length;i++)
for(int j=0;j<map[i].length;j++)
System.out.print(map[i][j]+(j==map[i].length-1?"\n":" "));
}
public static void main(String args[]){
new test(5,5);
}
}

C:\java>java test
0 2 3 9 10
1 4 8 11 18
5 7 12 17 19
6 13 16 20 23
14 15 21 22 24
wjjbfq 2008-03-14
  • 打赏
  • 举报
回复
能帮我编一下吗 先谢了
z_lping 2008-03-14
  • 打赏
  • 举报
回复
找出其中的变化规律就好了呀。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧