矩阵转置

数组操作-根据示例输入和输出编写程序

输入:

1	2	3	……	24	…… 50 …… 

输出:

1	9	17
2	10	18
3	11	19
4	12	20
5	13	21
6	14	22
7	15	23
8	16	24
25	33	……
26	……	……
27	……	……
28	……	……
29	……	……
30	……	……
31	……	……
32	……	48
49    
50

代码实现:

import java.util.Scanner;

public class SimpleTag {

	public static void main(String[] args) {
		// 初始化输入数据 1……n
		System.out.print("请输如数字:");
		int shuru = new Scanner(System.in).nextInt();
		if(shuru == 0) {
			System.out.print("结束退出");
			break;
		}
		int[] in = new int[shuru];
		int total = in.length;
		for(int i = 0;i<total;i++) {
			in[i] = (i+1);
		}
		//
		int pageSize = 24;//24个为一页
		int step = 8;//步长
		int columnSize = 3;// 按3列输出
		int pageCount = total/pageSize;// 页数
		int more = total%pageSize;//不足一页
		int span = pageSize/step;
		if(columnSize!=span) {
			System.out.println("参数校验不通过!");
			return;
		}
		// 循环 每 页
		for(int i = 0;i < pageCount;i++ ) {
			// 行范围
			int start = i*pageSize;//include    起始行 首元素 对应的in[]数组索引号
			int end = start + step;//exclude	结束行 首元素 对应的in[]数组索引号			
			for(int j = start;j < end;j++) {
				// 列跨度范围
				int startColumn = j;	// 起始列 首元素 对应的in[]数组索引号
				int endColumn = (startColumn+1)+step*span-step;// 结束列 首元素 对应的in[]数组索引号
				for(int k = startColumn;k < endColumn;k+=step) {
					// 按step输出
					System.out.print(in[k] + "\t");
				}
				System.out.println();					
			}
		}
		// 处理结余
		if(more>0) {
			int start = pageSize*pageCount;
			int end = start + step;
			for(int j = start;j < end;j++ ) {
				int startColumn = j;
				int endColumn = (startColumn+1)+step*span-step;
				for(int k = startColumn;k < endColumn;k+=step) {
					// 按step输出
					if(k < total) {
						System.out.print(in[k] + "\t");
					}else {
						System.out.print(" " + "\t");
					}						
				}
				System.out.println();
			}
		}
	}		
}

总结:
矩阵转置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值