[BOJ]1110プラスサイクル(JAVA)
に質問
0以上99以下の整数を指定すると、次の演算が可能になります.与えられた数字が10より小さい場合は、前に0を加えて2桁にし、各桁の数字を加える.そして,与えられた数字の右端桁を先に求めたプロトコルの右端桁に加算することで,新しい数字を生成することができる.次の例を見てみましょう.
26から始まります.2+6=8.新しい数字は68です.6+8=14.新数は84です.8+4=12.新しい数字は42です.4+2=6.新しい数は26です.
上の例は4回で元の数に戻ることができます.したがって、26の周期長は4である.
Nが与えられた場合、Nの周期長を求めるプログラムを作成してください.
入力
1行目はNです.Nは0以上、99以下の整数である.
しゅつりょく
1行目にNのサイクル長を出力する.
例1
▼入力
▼入力
▼入力
▼入力 最初は条件判別が不要だったので 条件式で入力した値と新しい値が等しいか確認しなければならない. 各ビット数を抽出するには、 新しい数字を文字列に変換し、統合して数字生成に変換します.
0以上99以下の整数を指定すると、次の演算が可能になります.与えられた数字が10より小さい場合は、前に0を加えて2桁にし、各桁の数字を加える.そして,与えられた数字の右端桁を先に求めたプロトコルの右端桁に加算することで,新しい数字を生成することができる.次の例を見てみましょう.
26から始まります.2+6=8.新しい数字は68です.6+8=14.新数は84です.8+4=12.新しい数字は42です.4+2=6.新しい数は26です.
上の例は4回で元の数に戻ることができます.したがって、26の周期長は4である.
Nが与えられた場合、Nの周期長を求めるプログラムを作成してください.
入力
1行目はNです.Nは0以上、99以下の整数である.
しゅつりょく
1行目にNのサイクル長を出力する.
例1
▼入力
26
▼出力4
例2▼入力
55
▼出力3
例3▼入力
1
▼出力60
例4▼入力
0
▼出力1
に答えるScanner.nextInt()
で入力値を受け付けます.do-while
ゲートを使用.10
の値のシェアと剰余を割る必要がある.import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int cnt = 0; // 사이클 횟수
int num; // 원래 값
int n; // 입력받은 값
int ten, one; // 각각 십의 자리, 일의 자리
num = n = scanner.nextInt(); // 값을 입력받아 num에 저장해놓기
scanner.close();
do {
if(n < 10) { // 입력 받은 수가 10보다 작다면
ten = 0; // 십의 자리 → 0
one = n; // 일의 자리 → n(입력 받은 수)
}
else {
ten = n/10; // 십의 자리 → 몫
one = n%10; // 일의 자리 → 나머지
}
int sum = ten + one; // 각 자리의 숫자 더하기
int left, right; // 각각 sum의 십의 자리, 일의 자리
if(sum < 10) { // sum이 10보다 작다면
left = 0; // 십의 자리 → 0
right = sum; // 일의 자리 → sum
}
else {
left = sum/10; // 십의 자리 → 몫
right = sum%10; // 일의 자리 → 나머지
}
// 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수 이어 붙여 새로운 수 만들기
String str = "";
str += Integer.toString(one);
str += Integer.toString(right);
n = Integer.parseInt(str); // 숫자로 변환
cnt++; // 사이클 횟수 카운트
} while(num != n); // 새로운 수가 입력받은 값이 아닌 동안
System.out.println(cnt);
}
}
Reference
この問題について([BOJ]1110プラスサイクル(JAVA)), 我々は、より多くの情報をここで見つけました https://velog.io/@yu-jin-song/BOJ-1110-더하기-사이클-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol