[BOJ]4673番セルフサービス番号
10299 ワード
白駿#4673セルフサービス番号(https://www.acmicpc.net/problem/4673)
コード-Python
Pythonの
また、
コード-Python
def self_num(a):
for i in str(a):
a+=int(i)
return a
lst_res = [i for i in range(1,10001)]
for a in range(1,10001):
if 0<self_num(a)<10001:
try: lst_res.remove(self_num(a))
except: pass
if a in lst_res:
print(a)
コード-Javaimport java.util.*;
public class Main {
public static int selfnum(int a){
String stra = Integer.toString(a);
for(int i=0;i<stra.length();i++){
a+=stra.charAt(i) - '0';
}
return a;
}
public static void main(String[] args) throws Exception {
ArrayList<String> res = new ArrayList<String>();
for(int i=1;i<10001;i++){
res.add(i+"");
}
for (int i=1;i<10001;i++){
if (1<=selfnum(i) && selfnum(i)<10001){
try{
res.remove(selfnum(i)+"");
}catch (Exception e){}
}
if (res.contains(i+"")){
System.out.println(i);
}
}
}
}
このコードはPython→Javaで実現するのに苦労しました.Pythonの
pass
はJavaにありません.生成者が1つ以上ある場合、try
文に存在しない要素はremove
文をキャプチャしようとしたときに発生したエラーをキャプチャしようとするので、Exception
として処理されます.また、
ArrayList
を整数型とすると出力の結果値が異なり、道具値で除去したPythonのremove
とは異なりjavaのremove
が整数型を受け入れればインデックスで除去される可能性がある.したがって、リストをString
に変更し、remove
の入力パラメータをオブジェクトに渡して問題を解決する.Reference
この問題について([BOJ]4673番セルフサービス番号), 我々は、より多くの情報をここで見つけました https://velog.io/@_koiil/BOJ-4673번-셀프넘버テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol