반응형
문제
0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때,
10보다 작은 정수가 주어지면 앞에 0을 붙여 두자리 숫자로 만들고(ex : 2가 주어지면 02로 만듬)
각 자리의 숫자를 더한다.
그 다음 주어진 수의 가장 오른쪽 자리의 수와 앞에서 구한 합의 가장 오른쪽 자리의 수를 이어 붙이면 새로운 수를 만들 수 있다.
예제)
주어진 정수 : 26
1번 사이클
2 + 6 = 8이다.
새로운 수는 26의 가장오른쪽 자리 수 6과 08의 가장 오른쪽 자리의 수 8을 이어 붙여서 68로 만든다.
2번 사이클
6 + 8 = 14이다.
새로운 수는 68의 가장오른쪽 자리 수 8과 14의 가장 오른쪽 자리 수 4를 이어붙여 84를 만든다.
3번 사이클
8 + 4 = 12이다.
새로운 수는 84의 가장 오른쪽 자리 수 4와 12의 가장 오른쪽 자리 수 2를 이어 붙여 42를 만든다.
4번 사이클
4 + 2 = 6이다.
새로운 수는 42의 가장 오른쪽 자리 수 2와 06의 가장 오른쪽 자리 수 6을 이어 붙여 26을 만든다.
위의 예제는 4번만에 원래의 수로 돌아올 수 있다.
26의 사이클은 4이다.
정수 N의 값이 주어졌을 때 N의 사이클 값을 출력하는 프로그램을 작성하시오.
입력
첫번째 줄에 N의 값을 입력받는다. N의 값의 범위는 0 <= N <= 99 이다.
출력
사이클 수를 출력한다.
코드
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string data = Console.ReadLine();
int initialNumber = int.Parse(data);
int num = initialNumber;
int roopCount = 0;
while (true)
{
roopCount++;
int a = num / 10;
int b = num % 10;
int sum = a + b;
num = (b * 10) + (sum % 10);
if (num == initialNumber)
break;
}
Console.WriteLine(roopCount);
}
}
}
결과
반응형
'C#' 카테고리의 다른 글
DataGridView Cell색깔 변경 - C# (0) | 2021.10.27 |
---|---|
[C# 문제] 소수 구하기 (0) | 2021.10.08 |
[C# 문제] 윤년구하기 (0) | 2021.10.06 |
[C# 문제] 두 수를 비교해보자. (0) | 2021.10.06 |
[C# 문제]Hello World! 를 출력하시오. (0) | 2021.10.06 |
댓글