[JavaScript]標準1110号:プラス記号サイクル
ソース
1110番:プラスサイクル(acmicpc.net)
質問する
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
1110番:プラスサイクル(acmicpc.net)
質問する
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
サンプル出力14
入力例255
サンプル出力23
入力例31
サンプル出力360
入力例40
サンプル出力41
入力例571
サンプル出力512
コード#コード#const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString();
let cnt = 0;
let num = input;
while(1) {
let sum = parseInt(num/10) + (num%10); // 각 자릿수의 합
num = (num%10)*10 + (sum%10); // 입력값의 가장 오른쪽 자릿수와 앞에서 구한 합의 가장 오른쪽 자릿수를 이어 붙인 새로운 수
cnt++;
if (num==input) {
break;
}
}
console.log(cnt);
Math.flower()-リンクを追加!const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString();
let cnt = 0;
let num = input;
while(1) {
let sum = Math.floor(num / 10) + num % 10; // 각 자릿수의 합
num = (num%10)*10 + (sum%10); // 입력값의 가장 오른쪽 자릿수와 앞에서 구한 합의 가장 오른쪽 자릿수를 이어 붙인 새로운 수
cnt++;
if (num==input) {
break;
}
}
console.log(cnt);
Reference
この問題について([JavaScript]標準1110号:プラス記号サイクル), 我々は、より多くの情報をここで見つけました https://velog.io/@jc15853/JavaScript-백준-1110번-더하기-사이클-i1ep7m8wテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol