华为OJ——蛇形矩阵

题目描述

题目说明

蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。

样例输入

5

样例输出

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11

接口说明

原型

void GetResult(int Num, char * pResult);

输入参数:

int Num:输入的正整数N

输出参数:

int * pResult:指向存放蛇形矩阵的字符串指针

指针指向的内存区域保证有效

返回值:

void

输入描述:

输入正整数N(N不大于100)
输出描述:

输出一个N行的蛇形矩阵。
输入例子:
4
输出例子:
1 3 6 10
2 5 9
4 8
7
import java.util.*;
public class Main{

	public static void main(String[] args) {

		Scanner scan=new Scanner(System.in);
		while(scan.hasNext())
		{
			int N=scan.nextInt();
			int[][] snake=new int[N][N];
			snake[0][0]=1;
			for(int i=0;i<N;i++)
			{
				if(i==0)//写出第一行的数
				{
					for(int j=1;j<N-i;j++)
					{
						snake[i][j]=snake[i][j-1]+(j+i+1);
					}
				}
				else//写出其他行的数
				{
					for(int j=0;j<N-i;j++){
						if(j==0){  //写出第一列的数
							snake[i][j]=snake[j][i-1]+1;
						}
						else{   //写出其他列的数
							snake[i][j]=snake[i][j-1]+(j+i+1);
						}
					}
				}
			}
			//输出
			for(int i=0;i<N;i++)
			{
				for(int j=0;j<N;j++)
				{
					if(snake[i][j]!=0) System.out.print(snake[i][j]+" ");
				}
				System.out.println();
			}
		}
	}
}
时间: 2024-12-12 15:27:30

华为OJ——蛇形矩阵的相关文章

华为OJ平台——矩阵乘法

题目描述: 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 输入: 1.第一个矩阵的行数 2.第一个矩阵的列数(也是第二个矩阵的行数) 3.第二个矩阵的列数 4.第一个矩阵的值 5.第二个矩阵的值 输出: 输出两个矩阵相乘的结果 样例输入 2 2 2 3 8 8 0 9 0 18 9 样例输出 171 72 72 0 思路: 题目意思很简单,只是实现两个矩阵乘法功能,要注意的一点是输出的格式. OJ平台中对输出的格式非常严格,经过多次尝试,验证此

【华为OJ】【076-蛇形矩阵】

[华为OJ][算法总篇章] [华为OJ][076-蛇形矩阵] [工程下载] 题目描述 题目说明 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. 样例输入 5 样例输出 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 输入描述 输入正整数N(N不大于100) 输出描述 输出一个N行的蛇形矩阵. 输入例子 4 输出例子 1 3 6 10 2 5 9 4 8 7 算法实现 import java.util.Scanner; /** * Author: 王俊超 * Da

OJ初级-句子逆序,近义词维护,数字颠倒,蛇形矩阵

备注:所有基础的练习题都不能借助相应功能的工具函数 一.句子逆序描述:  将一个英文语句以单词为单位逆序排放.例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 接口说明 /**  * 反转句子  *   * @param sentence 原句子  * @return 反转后的句子  */ public String reverse(String sentence); 二.近义词维护 给定接口,设置两个单词相互

【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组

描述:  编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返回true:不满足时返回false. 知识点: 语言基础,字符串,循环,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归    题目来源: 内部整理  练习阶段: 初级  运行时间限制: 10Sec 内存限制: 128MByte 输入: 输入输入的数据个数 输入一个int型数组 输出: 返

蛇形矩阵

如上图所示,是一个4*4的蛇形矩阵 算法思路 由图可观察到该矩阵可分为上三角和下三角.每个三角要根据蛇形的奇偶行进行计数. 算法代码 #include <stdio.h> int main() { int a[10][10]; int n; printf("Input n:"); scanf("%d",&n); int i=0,j=0,k=0; int count=1; for(i=0;i<n;i++)/*上三角 i代表是蛇形的奇偶行*/

随便写的蛇形矩阵

[问题描述] 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形. [要求] [数据输入]本题有多组数据,每组数据由一个正整数N组成.(N不大于100) [数据输出]对于每一组数据,输出一个N行的蛇形矩阵.两组输出之间不要额外的空行.矩阵三角中同一行的数字用一个空格分开.行尾不要多余的空格. [样例输入] 5 [样例输出] 1 3 6 10 15 2 5 9 14 4 8 13 7 12 11 /*作者:Yosha*/ #include "stdio.h" int main() {

(水题)蛇形矩阵

1160 蛇形矩阵 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 小明玩一个数字游戏,取个n行n列数字矩阵(其中n为不超过100的奇数),数字的填补方法为:在矩阵中心从1开始以逆时针方向绕行,逐圈扩大,直到n行n列填满数字,请输出该n行n列正方形矩阵以及其的对角线数字之和. 输入描述 Input Description n(即n行n列) 输出描述 Output Description n+1行,n行为组成的矩阵,最后一行为

华为OJ:汽水瓶

题目有点像小学数学题,因为三个空瓶可以换一瓶汽水,但喝完一瓶汽水就可以得到一个空瓶.所以相当于两个空瓶就可以换到一瓶汽水. 把输入除以2即可.这里讲一下java多出入,可以用in.hasNext(),就相当于C/C++里面的while(scanf("%d",n)!=EOF). import java.util.Scanner; public class qishuiping { public static void main(String args[]){ Scanner input=

华为OJ:分段排序

题目有点绕,一个是要二分,用三个字符串,存前,中,后三个,前,后部分都降序排序,然后后半部分再反转一下,讲三部分合起来就好了. import java.util.Scanner; public class dividesort { public static void sort(StringBuffer s){ for(int i=0;i<s.length();i++){ for(int j=i;j<s.length();j++){ if(s.charAt(i)>s.charAt(j))