バックアップアルゴリズム1110回:プラスサイクル


リンク


https://www.acmicpc.net/problem/1110

質問する


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のサイクル長を出力する.

入力と出力の例



プールコード

#include <stdio.h>

int main(){
  int number = 0,count = 0,first = 0;
  scanf("%d",&number);
  first = number;
  while(1){
    int a = 0,b = 0,temp;
    a = number / 10;
    b = number % 10;
    temp = a + b;
    number = (b*10) + (temp%10);
    count += 1;
    if(first == number){
      break;
    }
  }
  printf("%d\n",count);
  return 0;
}