質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

3回答

851閲覧

繰り上げを出力する方法

reina1125

総合スコア21

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2018/12/05 15:16

編集2018/12/06 08:31

A,B,C) = (4,1,3)で、(0,0,1)から出力を求める

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aikon_marimo

2018/12/05 15:24

ご質問者様の方で分かっている範囲(2列までのプログラム)と、なぜ3列以上だとうまくいかないのかのご質問者様なりの見解についても併せてご記載頂けますか。
reina1125

2018/12/05 15:38

記載致しました。宜しくお願いします。
guest

回答3

0

ベストアンサー

様々な実装方法があるかと思いますが、ご質問者様の余りを使用する考え方であれば、右の数値から左の数値に向かって再帰的に余りを求めていけば実現できるかと思います。

例.
(A,B,C) = (4,1,3)で、(0,0,1)から開始して23番目の出力を求めるには、
① 23を一番右の値(3)に1を加えた、4で割る ⇒ 商…5、余り…3
② 上記①の商(5)に対して、今度は右から2番目の数値(1)に1を加えた、2で割る ⇒ 商…2、余り…1
③ 上記②の商(2)に対して、今度は右から3番目の数値(4)に1を加えた、5で割る ⇒ 商…0、余り…2
あとは、求めた余りを③→②→①の順で接続した(2,1,3)が、23番目の出力結果となる。

投稿2018/12/05 16:51

編集2018/12/05 16:54
aikon_marimo

総合スコア1083

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

4進数の繰り上げと同じなので、
(例)下記で10進数の5を4進数の文字列に変換します。

Integer.toString(5,4);

文字列の4進数で返却されるので、後はお好きなように配列に変換してください。

投稿2018/12/05 16:51

編集2018/12/05 16:55
asahiyou

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2018/12/05 16:52

1番下は4進数だけど、それ以降が4進数ではない
asahiyou

2018/12/05 17:04

失礼しました!最後まで見てませんでした。
guest

0

配列で管理したほうが圧倒的に楽そう

java

1int[] moveUp = {1, 2, 3}; 2int[] now = new int[3]; 3 4while(now[0] <= moveUp[0]) { 5 for(int i = now.length - 1; i > 0; i--) { 6 now[i]++; 7 if(now[i] <= moveUp[i]) break; 8 now[i] = 0; 9 now[i - 1]++; 10 } 11 // 配列の内容を出力 12}

投稿2018/12/05 16:41

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reina1125

2018/12/05 17:16

返信有難うございます。 int[] moveUp = {1, 2, 4}; に変更すると 0,0,1 0,0,2 0,0,3 0,0,4 0,2,0 0,2,1 0,2,2 0,2,3 0,2,4 1,0,0 1,0,1 1,0,2 1,0,3 1,0,4 1,2,0 1,2,1 1,2,2 1,2,3 1,2,4 2,0,0 と出力されてしまいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問