Игорь Пашев - Post a comment

Dec. 6th, 2010

[info]igorpashev

04:19 pm

Каюсь, грешен.
Наибольший общий делитель нескольких чисел на C#.

Использование:
# gmcs gcd.cs
# mono ./gcd.exe 121 11 33 44
11
# mono ./gcd.exe 2 4 6 8
2


 1 using System;
 2
 3 namespace GCD {
 4     class Program {
 5         static uint gcd2(uint a, uint b) {
 6             uint c;
 7             while (b != 0) {
 8                 c = b;
 9                 b = a % b;
10                 a = c;
11             }
12             return a;
13         }
14
15         static uint gcdn(uint [] n) {
16             uint r = n[0];
17             for (int i = 1; i < n.Length; i++)
18                 r = gcd2(r, n[i]);
19             return r;
20         }
21
22         static void Main(string [] argv) {
23             uint [] a = Array.ConvertAll<string, uint>(argv,
24                     new Converter<string, uint>
25                     (delegate(string s) {return uint.Parse(s);})
26                     );
27
28             Console.WriteLine("{0}", gcdn(a));
29         }
30     }
31 }
32

Read Comments

Reply:

From:
(will be screened)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Username:
Password:
Subject:
No HTML allowed in subject
Message: