https://www.acmicpc.net/problem/1110
while문으로 분류된 더하기 사이클 문제입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _1110
{
class Program
{
static void Main(string[] args)
{
int buff;
int input = buff = int.Parse(Console.ReadLine());
int count = 1;
buff = (buff % 10 * 10) + ((buff / 10 + buff % 10) % 10);
while (input != buff)
{
++count;
buff = (buff % 10 * 10) + ((buff / 10 + buff % 10) % 10);
}
Console.WriteLine(count);
}
}
}
|
두자리 수가 주어졌을 때 일정한 규칙으로 다음 두자리 숫자를 만들어냅니다.
26 -> 68이 되는데 이는
첫자리의 1의자리 수 6이 다음 수의 10자리 수로. 2 + 6 두 자리수의 합이 다음 수의 1의자리 수가 됩니다.
다음 10의 자리 : num % 10 * 10을 하면 1의자리 수를 가져오고 10을 곱해 두자리 수가 됩니다.
다음 1의 자리 : num % 10 + num / 10을 하면 각 자리수의 합이 되며 10으로 나눈 나머지를 가져옵니다.
반복마다 횟수를 세주고 이를 출력하면 됩니다.
백준#2562 - 최댓값 (0) | 2020.04.08 |
---|---|
백준#10818 - 최소, 최대 (0) | 2020.04.08 |
백준#5585 - 거스름돈 (0) | 2020.04.08 |
백준#10951 - A+B - 4 (0) | 2020.04.08 |
백준#10952-A+B - 5 (0) | 2020.04.08 |