java
1package test; 2class nouNum { 3 public String Num01(String in){ 4 char[] out = in.toCharArray(); 5 int[] mul = { 1, 3, 7, 9, 7, 3, 1, 3, 9, 7, 1 }; 6 int n = Math.min(out.length, 9); 7 for (int i = 0; i < n; i++) 8 out[i] = (char)((out[i] - '0') * mul[i] % 10 + '0'); 9 return new String(out); 10 } 11} 12 13package test; 14 15public class test01 { 16public static void main(String[] args) { 17 nouNum test01 = new nouNum(); 18System.out.println(test01.Num01("20092812345")); 19 } 20} 21 22実行結果→ 20014416745
上記コードを実行したら20014416745という値になりました。
引数20092812345に対して、int[] mul = { 1, 3, 7, 9, 7, 3, 1, 3, 9, 7, 1 };を
掛けていくと20014416785 を想定していましたが、20014416745となりました。
引数20092812345の10の位の4に7を掛け算すると28の1の位の8が残り、20014416785 と
したいのですが、原因がわからなく、教えていただきたいです。
クラス、メソッド名など命名規則は守ったほうが良いかと。
https://qiita.com/rkonno/items/1b30daf83854fecbb814
https://riptutorial.com/ja/java/example/9031/%E5%91%BD%E5%90%8D%E8%A6%8F%E5%89%87
了解しました!ありがとうございます!
申し訳ないですが、「了解しました」「ありがとうございます」が非常に軽いです。
お礼よりフィードバックをください。
回答やアドバイスによって正しい理解を得られてないのでしたら、他者の時間を無駄にしてしまっているということになります。
参考:https://teratail.com/help/question-tips#questionTips4-2
>どのように解決したのかを伝えましょう
回答3件
あなたの回答
tips
プレビュー