소스 파일명: TestWhileLoop.cs
- /*
- * Filename: TestWhileLoop.cs
- *
- * Purpose: Example using the while loop syntax
- * while ....
- *
- * Compile: csc TestWhileLoop.cs
- * Execute: TestWhileLoop -200 300
- *
- */
- using System;
- namespace MyTestApplication1 {
- public class TestWhileLoop {
- // 사용법 표시
- public static void PrintUsage() {
- Console.WriteLine("Using: TestWhileLoop [integer1] [integer2]");
- Console.WriteLine("This finds the greatest common divisor of the given two integers.");
- }
- // Java 언어의 main 메소드에 해당하는 C# 언어의 Main 메소드
- public static void Main(string[] args) {
- if (args.Length != 2) {
- PrintUsage();
- Environment.Exit(1);
- }
- ////////////////////////////////////////////////
- // 명령행 인자의 두 스트링을 가져와서
- // 긴정수(long) 즉 Int64 타입으로 변환하여
- // 변수 val1과 val2에 저장한다.
- long val1 = Convert.ToInt64(args[0]);
- long val2 = Convert.ToInt64(args[1]);
- long a, b, q, r, gcd; // r은 나머지, q는 몫
- // a는 |val1|, |val2| 중 큰 값
- a = Math.Abs(val1);
- b = Math.Abs(val2);
- if (a < b) {
- a = Math.Abs(val2);
- b = Math.Abs(val1);
- }
- if (b == 0L) {
- Console.WriteLine("GCD(" + val1 + ", " + val2 + ") = " + a);
- Environment.Exit(1);
- }
- ////////////////////////////////////////
- // Euclidean 알고리즘의 시작
- //
- // a를 b로 나누어 몫은 q에, 나머지는 r에 저장
- q = a / b;
- r = a % b;
- ////////////////////////////////////////
- // Euclidean 알고리즘의 반복 (나머지 r이 0이 될 때 까지)
- while (r != 0L) {
- a = b;
- b = r;
- q = a / b;
- r = a % b;
- }
- // 나머지가 0이면 그 때 나눈 수(제수) b가 최대공약수(GCD)이다.
- gcd = b;
- // 최대공약수(GCD)를 출력한다.
- Console.WriteLine("GCD(" + val1 + ", " + val2 + ") = " + gcd);
- }
- }
- }
컴파일> csc -d . TestWhileLoop.cs
실행> TestWhileLoop
Using: TestWhileLoop [integer1] [integer2]
This finds the greatest common divisor of the given two integers.
실행> TestWhileLoop 200 300
GCD(200, 300) = 100
실행> TestWhileLoop 50 -20
GCD(50, -20) = 10
실행> TestWhileLoop -30 0
GCD(-30, 0) = 30
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
'프로그래밍 > C#' 카테고리의 다른 글
조립제법(Horner의 방법) 예제 for C# (0) | 2009.01.16 |
---|---|
80컬럼 컨솔에 19단표 출력하기 예제 for C# (0) | 2009.01.16 |
if ... else ... 조건문 예제 for C# (0) | 2009.01.16 |
명령행 인자 처리 예제 for C# (0) | 2009.01.16 |
구구단 출력 예제 for C# (0) | 2009.01.16 |