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ラーニングレベルアップ問題集の「10進数から2進数に変換」「10進数からM進数に変換」をやってみた。

Posted at

paizaラーニングレベルアップ問題集の「10進数から2進数に変換」「10進数からM進数に変換」をやってみました。


問題
10進数から2進数に変換

10進数からM進数に変換


方針
  • $N>0$の間、以下繰り返します
    • スタックに$N$を$M$で割った余りを挿入します
    • $N$を$M$で割った商に置き換えます
  • スタックが空になるまで
    • スタックから値を取り出し、出力します

問題の制約条件から、スタックとして長さ7の配列を用意しておけば十分でしょう。また、$N=0$や$M>10$のケースについても考慮しておりません。


C
10進数から2進数に変換
#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);
	int m = 2;
	int D[7];
	int k = 0;
	while (n) {
		D[k++] = n % m;
		n /= m;
	};
	while (k--) printf("%d", D[k]);
	puts("");
	return 0;
}
10進数からM進数に変換
#include <stdio.h>

int main() {
	int n, m;
	scanf("%d %d", &n, &m);
	int D[7];
	int k = 0;
	while (n) {
		D[k++] = n % m;
		n /= m;
	};
	while (k--) printf("%d", D[k]);
	puts("");
	return 0;
}

C++
10進数から2進数に変換
#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	int m = 2;
	int D[7];
	int k = 0;
	while (n) {
		D[k++] = n % m;
		n /= m;
	}
	while (k--) cout << D[k];
	cout << endl;
	return 0;
}
10進数からM進数に変換
#include <iostream>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	int D[7];
	int k = 0;
	while (n) {
		D[k++] = n % m;
		n /= m;
	}
	while (k--) cout << D[k];
	cout << endl;
	return 0;
}

C#
10進数から2進数に変換
using System;

class Program
{
	public static void Main()
	{
		int n = int.Parse(Console.ReadLine());
		int m = 2;
		int[] D = new int[7];
		int k = 0;
		while (n > 0) {
			D[k++] = n % m;
			n /= m;
		}
		while (k-- > 0) Console.Write(D[k]);
		Console.WriteLine();
	}
}
10進数からM進数に変換
using System;

class Program
{
	public static void Main()
	{
		int[] nm = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
		int n = nm[0], m = nm[1];
		int[] D = new int[7];
		int k = 0;
		while (n > 0) {
			D[k++] = n % m;
			n /= m;
		}
		while (k-- > 0) Console.Write(D[k]);
		Console.WriteLine();
	}
}

Go
10進数から2進数に変換
package main
import "fmt"

func main() {
	var n int
	fmt.Scan(&n)
	m := 2
	var D [7]int
	k := 0
	for n > 0 {
		D[k] = n % m
		k += 1
		n /= m
	}
	for k > 0 {
		k -= 1
		fmt.Print(D[k])
	}
	fmt.Println()
}
10進数からM進数に変換
package main
import "fmt"

func main() {
	var n, m int
	fmt.Scan(&n, &m)
	var D [7]int
	k := 0
	for n > 0 {
		D[k] = n % m
		k += 1
		n /= m
	}
	for k > 0 {
		k -= 1
		fmt.Print(D[k])
	}
	fmt.Println()
}

Java
10進数から2進数に変換
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 = 2;
		int[] D = new int[7];
		int k = 0;
		while (n > 0) {
			D[k++] = n % m;
			n /= m;
		}
		while (k-- > 0) {
			System.out.print(D[k]);
		}
		System.out.println();
	}
}
10進数からM進数に変換
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();
		int[] D = new int[7];
		int k = 0;
		while (n > 0) {
			D[k++] = n % m;
			n /= m;
		}
		while (k-- > 0) {
			System.out.print(D[k]);
		}
		System.out.println();
	}
}

JavaScript
10進数から2進数に変換
let n = Number(require("fs").readFileSync("/dev/stdin", "utf8"));
const m = 2;
let D = Array(0);
let k = 0;
while (n) {
	D.push(n % m);
	n = parseInt(n / m);
}
console.log(D.reverse().join(""));
10進数からM進数に変換
let [n, m] = require("fs").readFileSync("/dev/stdin", "utf8").split(' ').map(Number);
let D = Array(0);
let k = 0;
while (n) {
	D.push(n % m);
	n = parseInt(n / m);
}
console.log(D.reverse().join(""));

Kotlin
10進数から2進数に変換
fun main() {
	var n = readLine()!!.toInt()
	val m = 2
	var D = IntArray(7)
	var k = 0
	while (n > 0) {
		D[k++] = n % m
		n /= m
	}
	while (k-- > 0) print(D[k])
	println()
}
10進数からM進数に変換
fun main() {
	var (n, m) = readLine()!!.split(' ').map { it.toInt() }
	var D = IntArray(7)
	var k = 0
	while (n > 0) {
		D[k++] = n % m
		n /= m
	}
	while (k-- > 0) print(D[k])
	println()
}

PHP
10進数から2進数に変換
<?php
	$n = intval(fgets(STDIN));
	$m = 2;
	$D = [];
	while ($n) {
		$D[] = $n % $m;
		$n = intdiv($n, $m);
	}
	while ($D) echo array_pop($D);
	echo PHP_EOL;
?>
10進数からM進数に変換
<?php
	[$n, $m] = array_map("intval", explode(' ', fgets(STDIN)));
	$D = [];
	while ($n) {
		$D[] = $n % $m;
		$n = intdiv($n, $m);
	}
	while ($D) echo array_pop($D);
	echo PHP_EOL;
?>

Perl
10進数から2進数に変換
my $n = int(<STDIN>);
my $m = 2;
my @D;
while ($n) {
	push @D, $n % $m;
	$n = int($n / $m);
}
while (@D) {
	print pop @D;
}
print $/;
10進数からM進数に変換
my ($n, $m) = map { int($_) } split ' ', <STDIN>;
my @D;
while ($n) {
	push @D, $n % $m;
	$n = int($n / $m);
}
while (@D) {
	print pop @D;
}
print $/;

Python3
10進数から2進数に変換
n = int(input())
m = 2
D = []
while n:
	D.append(n % m)
	n //= m
print(''.join(list(map(str, reversed(D)))))
10進数からM進数に変換
n, m = map(int, input().split())
D = []
while n:
	D.append(n % m)
	n //= m
print(''.join(list(map(str, reversed(D)))))

Ruby
10進数から2進数に変換
n = gets.to_i
m = 2
D = []
while n > 0
	D << n % m
	n /= m
end
puts D.reverse.join
10進数からM進数に変換
n, m = gets.split.map(&:to_i)
D = []
while n > 0
	D << n % m
	n /= m
end
puts D.reverse.join

Scala
10進数から2進数に変換
import scala.io.StdIn._

object Main extends App{
	var n = readInt()
	val m = 2
	val D = new Array[Int](7)
	var k = 0
	while (n > 0) {
		D(k) = n % m
		k += 1
		n /= m
	}
	while (k > 0) {
		k -= 1
		print(D(k))
	}
	println()
}
10進数からM進数に変換
import scala.io.StdIn._

object Main extends App{
	var Array(n, m) = readLine().split(' ').map { _.toInt }
	val D = new Array[Int](7)
	var k = 0
	while (n > 0) {
		D(k) = n % m
		k += 1
		n /= m
	}
	while (k > 0) {
		k -= 1
		print(D(k))
	}
	println()
}

Swift
10進数から2進数に変換
var n = Int(readLine()!)!
let m = 2
var D = [Int]()
while n > 0 {
	D.append(n % m)
	n /= m
}
print(D.reversed().map { String($0) }.joined())
10進数からM進数に変換
let nm = readLine()!.split(separator: " ").compactMap { Int($0) }
var (n, m) = (nm[0], nm[1])
var D = [Int]()
while n > 0 {
	D.append(n % m)
	n /= m
}
print(D.reversed().map { String($0) }.joined())
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?