0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paizaラーニングレベルアップ問題集の【行によって長さが違う二次元配列の表示】をやってみた。

Posted at

paizaラーニングレベルアップ問題集の【行によって長さが違う二次元配列の表示】をやってみました。


問題
N個の文字を半分ずつ出力

数値を異なる長さで2行出力

直角三角形の出力

すべての行の長さが不定な2次元配列の出力

すべての行の長さと値が不定な2次元配列の出力


C
N個の文字を半分ずつ出力
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	int m = n / 2;
	for (int i = 1; i < m; i++) {
		printf("%d ", i);
	}
	printf("%d\n", m);
	for (int i = m + 1; i < n; i++) {
		printf("%d ", i);
	}
	printf("%d\n", n);
	return 0;
}
数値を異なる長さで2行出力
#include <stdio.h>

int main() {
	int n, m;
	scanf("%d %d", &n, &m);
	for (int i = 1; i < n; i++) {
		printf("%d ", i);
	}
	printf("%d\n", n);
	for (int i = 1; i < m; i++) {
		printf("%d ", i);
	}
	printf("%d\n", m);
	return 0;
}
直角三角形の出力
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j < i; j++) {
			printf("%d ", j);
		}
		printf("%d\n", i);
	}
	return 0;
}
すべての行の長さが不定な2次元配列の出力
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		int m;
		scanf("%d", &m);
		for (int j = 1; j < m; j++) {
			printf("%d ", j);
		}
		printf("%d\n", m);
	}
	return 0;
}
すべての行の長さと値が不定な2次元配列の出力
#include <stdio.h>

int main() {
	int n, m;
	scanf("%d %d", &n, &m);
	int A[n];
	for (int i = 0; i < n; i++) {
		scanf("%d", &A[i]);
	}
	int B[m];
	for (int i = 0; i < m; i++) {
		scanf("%d", &B[i]);
	}
	int k = 0;
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < B[i]; j++) {
			if (j > 0) putchar(' ');
			printf("%d", A[k++]);
		}
		puts("");
	}
	return 0;
}

C++
N個の文字を半分ずつ出力
#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	int m = n / 2;
	for (int i = 1; i < m; i++) {
		cout << i << ' ';
	}
	cout << m << endl;
	for (int i = m + 1; i < n; i++) {
		cout << i << ' ';
	}
	cout << n << endl;
	return 0;
}
数値を異なる長さで2行出力
#include <iostream>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	for (int i = 1; i < n; i++) {
		cout << i << ' ';
	}
	cout << n << endl;
	for (int i = 1; i < m; i++) {
		cout << i << ' ';
	}
	cout << m << endl;
	return 0;
}
直角三角形の出力
#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j < i; j++) {
			cout << j << ' ';
		}
		cout << i << endl;
	}
	return 0;
}
すべての行の長さが不定な2次元配列の出力
#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		int m;
		cin >> m;
		for (int j = 1; j < m; j++) {
			cout << j << ' ';
		}
		cout << m << endl;
	}
	return 0;
}
すべての行の長さと値が不定な2次元配列の出力
#include <iostream>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	int A[n];
	for (int i = 0; i < n; i++) {
		cin >> A[i];
	}
	int k = 0;
	for (int i = 0; i < m; i++) {
		int b;
		cin >> b;
		for (int j = 0; j < b; j++) {
			if (j > 0) cout << ' ';
			cout << A[k++];
		}
		cout << endl;
	}
	return 0;
}

C#
N個の文字を半分ずつ出力
using System;

class Program
{
	public static void Main()
	{
		int n = int.Parse(Console.ReadLine());
		int m = n / 2;
		for (int i = 1; i < m; i++) {
			Console.Write(i + " ");
		}
		Console.WriteLine(m);
		for (int i = m + 1; i < n; i++) {
			Console.Write(i + " ");
		}
		Console.WriteLine(n);
	}
}
数値を異なる長さで2行出力
using System;

class Program
{
	public static void Main()
	{
		int[] nm = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int n = nm[0];
		int m = nm[1];
		for (int i = 1; i < n; i++) {
			Console.Write(i + " ");
		}
		Console.WriteLine(n);
		for (int i = 1; i < m; i++) {
			Console.Write(i + " ");
		}
		Console.WriteLine(m);
	}
}
直角三角形の出力
using System;

class Program
{
	public static void Main()
	{
		int n = int.Parse(Console.ReadLine());
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j < i; j++) {
				Console.Write(j + " ");
			}
			Console.WriteLine(i);
		}
	}
}
すべての行の長さが不定な2次元配列の出力
using System;

class Program
{
	public static void Main()
	{
		Console.ReadLine();
		foreach (int m in Array.ConvertAll(Console.ReadLine().Split(), int.Parse)) {
			for (int j = 1; j < m; j++) {
				Console.Write(j + " ");
			}
			Console.WriteLine(m);
		}
	}
}
すべての行の長さと値が不定な2次元配列の出力
using System;

class Program
{
	public static void Main()
	{
		Console.ReadLine().Split();
		int[] A = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int k = 0;
		foreach (int b in Array.ConvertAll(Console.ReadLine().Split(), int.Parse)) {
			for (int j = 0; j < b; j++) {
				if (j > 0) Console.Write(' ');
				Console.Write(A[k++]);
			}
			Console.WriteLine();
		}
	}
}

Go
N個の文字を半分ずつ出力
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	m := n / 2;
	for i := 1; i < m; i++ {
		fmt.Printf("%d ", i)
	}
	fmt.Println(m)
	for i := m + 1; i < n; i++ {
		fmt.Printf("%d ", i)
	}
	fmt.Println(n)
}
数値を異なる長さで2行出力
package main
import "fmt"

func main() {
	var n, m int
	fmt.Scan(&n, &m)
	for i := 1; i < n; i++ {
		fmt.Printf("%d ", i)
	}
	fmt.Println(n)
	for i := 1; i < m; i++ {
		fmt.Printf("%d ", i)
	}
	fmt.Println(m)
}
直角三角形の出力
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	for i := 1; i <= n; i++ {
		for j := 1; j < i; j++ {
			fmt.Printf("%d ", j)
		}
		fmt.Println(i)
	}
}
すべての行の長さが不定な2次元配列の出力
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	for i := 0; i < n; i++ {
		var m int
		fmt.Scan(&m)
		for j := 1; j < m; j++ {
			fmt.Printf("%d ", j)
		}
		fmt.Println(m)
	}
}
すべての行の長さと値が不定な2次元配列の出力
package main
import "fmt"

func main() {
	var n, m int
	fmt.Scan(&n, &m)
	A := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Scan(&A[i])
	}
	k := 0
	for i := 0; i < m; i++ {
		var b int
		fmt.Scan(&b)
		for j := 0; j < b; j++ {
			if j > 0 {
				fmt.Print(" ")
			}
			fmt.Print(A[k])
			k += 1
		}
		fmt.Println()
	}
}

Java
N個の文字を半分ずつ出力
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.close();
		int m = n / 2;
		for (int i = 1; i < m; i++) {
			System.out.print(i + " ");
		}
		System.out.println(m);
		for (int i = m + 1; i < n; i++) {
			System.out.print(i + " ");
		}
		System.out.println(n);
	}
}
数値を異なる長さで2行出力
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		sc.close();
		for (int i = 1; i < n; i++) {
			System.out.print(i + " ");
		}
		System.out.println(n);
		for (int i = 1; i < m; i++) {
			System.out.print(i + " ");
		}
		System.out.println(m);
	}
}
直角三角形の出力
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		sc.close();
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j < i; j++) {
				System.out.print(j + " ");
			}
			System.out.println(i);
		}
	}
}
すべての行の長さが不定な2次元配列の出力
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for (int i = 0; i < n; i++) {
			int m = sc.nextInt();
			for (int j = 1; j < m; j++) {
				System.out.print(j + " ");
			}
			System.out.println(m);
		}
		sc.close();
	}
}
すべての行の長さと値が不定な2次元配列の出力
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[] A = new int[n];
		for (int i = 0; i < n; i++) {
			A[i] = sc.nextInt();
		}
		int k = 0;
		for (int i = 0; i < m; i++) {
			int b = sc.nextInt();
			for (int j = 0; j < b; j++) {
				if (j > 0) System.out.print(' ');
				System.out.print(A[k++]);
			}
			System.out.println();
		}
		sc.close();
	}
}

JavaScript
N個の文字を半分ずつ出力
const n = Number(require("fs").readFileSync("/dev/stdin", "utf8").trim());
const m = n / 2;
console.log(...Array(m).fill(1).map((i, j) => i + j));
console.log(...Array(m).fill(1).map((i, j) => m + i + j));
数値を異なる長さで2行出力
const [n, m] = require("fs").readFileSync("/dev/stdin", "utf8").trim().split(' ').map(Number);
console.log(...Array(n).fill(1).map((i, j) => i + j));
console.log(...Array(m).fill(1).map((i, j) => i + j));
直角三角形の出力
const n = require("fs").readFileSync("/dev/stdin", "utf8").trim().split(' ').map(Number);
for (var i = 1; i <= n; i++) {
	console.log(...Array(i).fill(1).map((k, j) => k + j));
}
すべての行の長さが不定な2次元配列の出力
const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n');
lines[1].split(' ').map(Number).forEach(m => console.log(...Array(m).fill(1).map((i, j) => i + j)));
すべての行の長さと値が不定な2次元配列の出力
const lines = require("fs").readFileSync("/dev/stdin", "utf8").trim().split('\n');
const A = lines[1].split(' ');
let k = 0;
lines[2].split(' ').map(Number).forEach(function (b) {
	console.log(A.slice(k, k + b).join(' '));
	k += b;
});

Kotlin
N個の文字を半分ずつ出力
fun main() {
	val n = readLine()!!.toInt()
	val m = n / 2
	println((1..m).joinToString(" "))
	println((m+1..n).joinToString(" "))
}
数値を異なる長さで2行出力
fun main() {
	val (n, m) = readLine()!!.split(' ').map { it.toInt() }
	println((1..n).joinToString(" "))
	println((1..m).joinToString(" "))
}
直角三角形の出力
fun main() {
	for (i in 1..readLine()!!.toInt()) {
		println((1..i).joinToString(" "))
	}
}
すべての行の長さが不定な2次元配列の出力
fun main() {
	val n = readLine()!!.toInt()
	val M = readLine()!!.split(" ").map { it.toInt() }
	for (i in 0 until n) {
		println((1..M[i]).joinToString(" "))
	}
}
すべての行の長さと値が不定な2次元配列の出力
fun main() {
	val (_, m) = readLine()!!.split(' ').map { it.toInt() }
	val A = readLine()!!.split(' ').map { it.toInt() }
	val B = readLine()!!.split(' ').map { it.toInt() }
	var k = 0
	for (i in 0 until m) {
		println(A.subList(k, k + B[i]).joinToString(" "))
		k += B[i]
	}
}

PHP
N個の文字を半分ずつ出力
<?php
	$n = intval(trim(fgets(STDIN)));
	$m = intval($n / 2);
	for ($i = 1; $i < $m; $i++) {
		echo "$i ";
	}
	echo $m, PHP_EOL;
	for ($i = $m + 1; $i < $n; $i++) {
		echo "$i ";
	}
	echo $n, PHP_EOL;
?>
数値を異なる長さで2行出力
<?php
	[$n, $m] = array_map('intval', explode(' ', fgets(STDIN)));
	for ($i = 1; $i < $n; $i++) {
		echo "$i ";
	}
	echo $n, PHP_EOL;
	for ($i = 1; $i < $m; $i++) {
		echo "$i ";
	}
	echo $m, PHP_EOL;
?>
直角三角形の出力
<?php
	$n = intval(trim(fgets(STDIN)));
	for ($i = 1; $i <= $n; $i++) {
		for ($j = 1; $j < $i; $j++) {
			echo "$j ";
		}
		echo $i, PHP_EOL;
	}
?>
すべての行の長さが不定な2次元配列の出力
<?php
	$n = intval(trim(fgets(STDIN)));
	foreach (array_map('intval', explode(' ', fgets(STDIN))) as $m) {
		for ($j = 1; $j < $m; $j++) {
			echo "$j ";
		}
		echo $m, PHP_EOL;
	}
?>
すべての行の長さと値が不定な2次元配列の出力
<?php
	[$n, $m] = array_map('intval', explode(' ', fgets(STDIN)));
	$A = explode(' ', trim(fgets(STDIN)));
	$k = 0;
	foreach (array_map('intval', explode(' ', fgets(STDIN))) as $b) {
		for ($j = 0; $j < $b; $j++) {
			if ($j > 0) echo ' ';
			echo $A[$k++];
		}
		echo PHP_EOL;
	}
?>

Perl
N個の文字を半分ずつ出力
my $n = int(<STDIN>);
my $m = int($n / 2);
print join(' ', 1..$m), $/;
print join(' ', ($m+1)..$n), $/;
数値を異なる長さで2行出力
my ($n, $m) = split(' ', <STDIN>);
print join(' ', 1..$n), $/;
print join(' ', 1..$m), $/;
直角三角形の出力
my $n = int(<STDIN>);
for (my $i = 1; $i <= $n; $i++) {
	print join(' ', 1..$i), $/;
}
すべての行の長さが不定な2次元配列の出力
my $n = int(<STDIN>);
foreach my $m (split(' ', <STDIN>)) {
	print join(' ', 1..$m), $/;
}
すべての行の長さと値が不定な2次元配列の出力
my ($n, $m) = split(' ', <STDIN>);
my @A = split(' ', <STDIN>);
my $k = 0;
foreach my $b (split(' ', <STDIN>)) {
	print join(' ', @A[$k..$k+$b-1]), $/;
	$k += $b;
}

Python3
N個の文字を半分ずつ出力
n = int(input())
m = n // 2
print(*range(1, m + 1))
print(*range(m + 1, n + 1))
数値を異なる長さで2行出力
n, m = map(int, input().split())
print(*range(1, n + 1))
print(*range(1, m + 1))
直角三角形の出力
for i in range(1, int(input()) + 1):
	print(*range(1, i + 1))
すべての行の長さが不定な2次元配列の出力
n = int(input())
for m in list(map(int, input().split())):
	print(*range(1, m + 1))
すべての行の長さと値が不定な2次元配列の出力
n, m = map(int, input().split())
A = input().split()
k = 0
for b in list(map(int, input().split())):
	print(*A[k:k+b])
	k += b

Ruby
N個の文字を半分ずつ出力
n = gets.to_i
m = n / 2
puts (1..m).to_a.join(' ')
puts (m+1..n).to_a.join(' ')
数値を異なる長さで2行出力
n, m = gets.split.map(&:to_i)
puts (1..n).to_a.join(' ')
puts (1..m).to_a.join(' ')
直角三角形の出力
n = gets.to_i
(1..n).each do |i|
	puts (1..i).to_a.join(' ')
end
すべての行の長さが不定な2次元配列の出力
n = gets.to_i
gets.split.map(&:to_i).each do |m|
	puts (1..m).to_a.join(' ')
end
すべての行の長さと値が不定な2次元配列の出力
n, m = gets.split.map(&:to_i)
A = gets.split
k = 0
gets.split.map(&:to_i).each do |b|
	puts A[k...k+b].join(' ')
	k += b
end

Scala
N個の文字を半分ずつ出力
import scala.io.StdIn._

object Main extends App{
	val n = readInt()
	val m = n / 2
	println((1 to m).mkString(" "))
	println((m+1 to n).mkString(" "))
}
数値を異なる長さで2行出力
import scala.io.StdIn._

object Main extends App{
	val Array(n, m) = readLine().split(" ").map(_.toInt)
	println((1 to n).mkString(" "))
	println((1 to m).mkString(" "))
}
直角三角形の出力
import scala.io.StdIn._

object Main extends App{
	val n = readInt()
	for (i <- 1 to n) {
		println((1 to i).mkString(" "))
	}
}
すべての行の長さが不定な2次元配列の出力
import scala.io.StdIn._

object Main extends App{
	val n = readInt()
	for (m <- readLine().split(" ").map(_.toInt)) {
		println((1 to m).mkString(" "))
	}
}
すべての行の長さと値が不定な2次元配列の出力
import scala.io.StdIn._

object Main extends App{
	val Array(n, m) = readLine().split(" ").map(_.toInt)
	val A = readLine().split(" ")
	var k = 0
	for (b <- readLine().split(" ").map(_.toInt)) {
		println(A.slice(k, k+b).mkString(" "))
		k += b
	}
}

Swift
N個の文字を半分ずつ出力
let n = Int(readLine()!)!
let m = n / 2
print((1...m).map { String($0) }.joined(separator: " "))
print((m+1...n).map { String($0) }.joined(separator: " "))
数値を異なる長さで2行出力
let nm = readLine()!.split(separator: " ").map { Int($0)! }
print((1...nm[0]).map { String($0) }.joined(separator: " "))
print((1...nm[1]).map { String($0) }.joined(separator: " "))
直角三角形の出力
let n = Int(readLine()!)!
for i in 1...n {
	print((1...i).map { String($0) }.joined(separator: " "))
}
すべての行の長さが不定な2次元配列の出力
let n = Int(readLine()!)!
for m in readLine()!.split(separator: " ").map({ Int($0)! }){
	print((1...m).map { String($0) }.joined(separator: " "))
}
すべての行の長さと値が不定な2次元配列の出力
let nm = readLine()!.split(separator: " ").map { Int($0)! }
let A = readLine()!.split(separator: " ")
var k = 0
for b in readLine()!.split(separator: " ").map({ Int($0)! }){
	print(A[k..<k+b].joined(separator: " "))
	k += b
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?