回答編集履歴

3

追記

2018/12/01 00:52

投稿

yukkuri
yukkuri

スコア624

test CHANGED
@@ -79,3 +79,53 @@
79
79
  long l = Long.parceLong( atai );
80
80
 
81
81
  ```
82
+
83
+
84
+
85
+
86
+
87
+ ### 質問者自身の回答を見させていただいて
88
+
89
+ > 例えば、最大3文字として、
90
+
91
+ 入力値 : ABCのbyte配列 => [65, 66, 67] を最大値[FF,FF,FF]から引いたものを降順の値とすることで解決できそうです。
92
+
93
+
94
+
95
+ ということなので、このような感じでしょうか。
96
+
97
+ ```Java
98
+
99
+ /**
100
+
101
+ * 降順にソートします。
102
+
103
+ *
104
+
105
+ * @param by 変換する Byte 配列(長さはどれでもいいはず)
106
+
107
+ *
108
+
109
+ * @return 変換後の Byte[ by.length ]
110
+
111
+ */
112
+
113
+ public Byte[] sort( Byte[] by )
114
+
115
+ {
116
+
117
+ Byte base = by; // 念の為コピー
118
+
119
+ for( int l = 0; l < base.length; l++ ){
120
+
121
+ base[ l ] = FF - base[ l ];
122
+
123
+ }
124
+
125
+ return base; // もしかしたら変数自体変更で void でいける?
126
+
127
+ }
128
+
129
+ ```
130
+
131
+ 蛇足:そろそろ長くなってきたから回答分けようかなぁ...

2

追記

2018/12/01 00:52

投稿

yukkuri
yukkuri

スコア624

test CHANGED
@@ -63,3 +63,19 @@
63
63
  (すいません。わたしには1 -> 400 みたいにする式が出てきませんでした。その式を使うと
64
64
 
65
65
  もっと効率化できるはずです。)
66
+
67
+
68
+
69
+ ### 質問の追記による追記
70
+
71
+ ここまで式が出ているのなら、文字列から変換すればいいのでは?
72
+
73
+ ```
74
+
75
+ String atai = "21";
76
+
77
+
78
+
79
+ long l = Long.parceLong( atai );
80
+
81
+ ```

1

追記

2018/11/29 23:29

投稿

yukkuri
yukkuri

スコア624

test CHANGED
@@ -31,3 +31,35 @@
31
31
  System.out.println( "f(\"" + arrayup[ count ] + "\") = " + arraydown[ arrayup.length - count - 1 ] );
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ ###コメントによる追記
38
+
39
+ あまりメモリを気にしないなら、
40
+
41
+ ```Java
42
+
43
+ int c = 1; // 入力値 c番目
44
+
45
+ int max = 400; // 最大値 // これと上はコマンドラインで持ってきて変換したと想定
46
+
47
+
48
+
49
+ Integer arrayup = new Integer[ max ];
50
+
51
+ for( int l = 0; l < max - 1; l++ ){
52
+
53
+ arrayup[ l ] = l;
54
+
55
+ }
56
+
57
+
58
+
59
+ // 降順にするなどは上の回答を参照してください。
60
+
61
+ ```
62
+
63
+ (すいません。わたしには1 -> 400 みたいにする式が出てきませんでした。その式を使うと
64
+
65
+ もっと効率化できるはずです。)