Алгоритмы (C-Sharp): различия между версиями

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску
 
(не показано 12 промежуточных версий этого же участника)
Строка 67: Строка 67:
 
         static void Main(string[] args)
 
         static void Main(string[] args)
 
         {
 
         {
             Console.Write("Введите число множителей:");
+
             Console.Write("Введите количество чисел:");
 
             string str = Console.ReadLine();
 
             string str = Console.ReadLine();
 
             Int32.TryParse(str, out var n);
 
             Int32.TryParse(str, out var n);
Строка 113: Строка 113:
 
=== Вывод 10 первых степеней двойки ===
 
=== Вывод 10 первых степеней двойки ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            int x = 2;
 +
           
 +
            for (int i = 1; i <= 10; i++) {
 +
                Console.WriteLine($"{i,3} {x,5}");
 +
                x *= 2;
 +
            }
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Вывод всех двухзначных чисел, кратных 5 ===
 
=== Вывод всех двухзначных чисел, кратных 5 ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
 +
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            int x = 10;
  
 +
            while (x < 100) {
 +
                Console.WriteLine(x);
 +
                x += 5;
 +
            }
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Вывод n первых чисел Фибоначчи ===
 
=== Вывод n первых чисел Фибоначчи ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            Console.WriteLine("Введите целое число n (n > 1):");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var n);
 +
 +
            int a = 0; int b = 1;
 +
            Console.Write($"{a} {b} ");
 +
            for (int i = 1; i <= n - 2; ++i) {
 +
                int tmp = a;
 +
                a = b;
 +
                b += tmp;
 +
                Console.Write($"{b} ");
 +
            }
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Найти НОД(A,B), используя алгоритм Евклида: ===
 
=== Найти НОД(A,B), используя алгоритм Евклида: ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
 +
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            Console.WriteLine("Введите A:");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var a);
 +
           
 +
            Console.WriteLine("Введите B:");
 +
            str = Console.ReadLine();
 +
            Int32.TryParse(str, out var b);
 +
 +
 +
            while (b != 0) {
 +
                int tmp = a;
 +
                a = b;
 +
                b = tmp % b;
 +
            }
  
 +
            Console.WriteLine($"НОД(A, B) = {a}");
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Найти сумму цифр целого числа m ===
 
=== Найти сумму цифр целого числа m ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            Console.WriteLine("Введите m:");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var m);
 +
           
 +
            int sum = 0;
 +
            int m1 = Math.Abs(m);
 +
 +
            while (m1 > 0) {
 +
                sum += m1 % 10;
 +
                m1 /= 10;
 +
            }
 +
 +
            Console.WriteLine($"Сумма цифр числа {m} равна {sum}");
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Найти max из введенных чисел ===
 
=== Найти max из введенных чисел ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            Console.Write("Введите целое число n (n>0):");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var n);
 +
           
 +
            Console.Write("Введите число №1:");
 +
            str = Console.ReadLine();
 +
            Int32.TryParse(str, out var x);
 +
 +
            int max = x;
 +
           
 +
            for(int i = 2; i <= n; i++) {
 +
                Console.Write($"Введите число №{i}:");
 +
                str = Console.ReadLine();
 +
                Int32.TryParse(str, out x);
 +
                if (x > max)
 +
                {
 +
                    max = x;
 +
                }
 +
            }
 +
 +
            Console.WriteLine($"Максимальное из введенных чисел: {max}");
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Найти min, удовлетворяющее условию p(x) ===
 
=== Найти min, удовлетворяющее условию p(x) ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static Boolean p(int x)
 +
        {
 +
            return x > 0;
 +
        }
 +
       
 +
        static void Main(string[] args)
 +
        {
 +
            Console.Write("Введите целое число n (n>0):");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var n);
 +
           
 +
            int min = int.MaxValue;
 +
            Boolean exists = false;
 +
           
 +
            for(int i = 1; i <= n; i++) {
 +
                Console.Write($"Введите число №{i}:");
 +
                str = Console.ReadLine();
 +
                Int32.TryParse(str, out var x);
 +
                if ((x < min) && p(x))
 +
                {
 +
                    min = x;
 +
                    exists = true;
 +
                }
 +
            }
 +
 +
            if (exists) {
 +
                Console.WriteLine($"Минимальное из введенных чисел, удовлетворяющих условию: {min}");
 +
            } else {
 +
                Console.WriteLine("Нет чисел, удовлетворяющих условию");
 +
            }
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Есть ли среди введенных число k? ===
 
=== Есть ли среди введенных число k? ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            Console.Write("Введите целое число n (n>0):");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var n);
 +
           
 +
            Console.Write("Введите целое число k:");
 +
            str = Console.ReadLine();
 +
            Int32.TryParse(str, out var k);
 +
           
 +
            Boolean exists = false;
 +
           
 +
            for(int i = 0; i < n; i++) {
 +
                Console.Write($"Введите число №{i+1}:");
 +
                str = Console.ReadLine();
 +
                Int32.TryParse(str, out var x);
 +
                if (x == k)
 +
                {
 +
                    exists = true;
 +
                    break;
 +
                }
 +
            }
 +
 +
            if (exists) {
 +
                Console.WriteLine($"Число {k} было введено");
 +
            } else {
 +
                Console.WriteLine($"Число {k} не было введено");
 +
            }
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Является ли число N>1 простым? ===
 
=== Является ли число N>1 простым? ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            Console.Write("Введите целое число n (n>1):");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var n);
 +
           
 +
           
 +
           
 +
            Boolean isPrime = true;
 +
           
 +
            for(int i = 2; i < Math.Round(Math.Sqrt(n)); i++) {
 +
                if (n % i == 0)
 +
                {
 +
                    isPrime = false;
 +
                    break;
 +
                }
 +
            }
 +
 +
            if (isPrime) {
 +
                Console.WriteLine($"Число {n} является простым");
 +
            } else {
 +
                Console.WriteLine($"Число {n} является составным");
 +
            }
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
=== Разложение числа на простые множители ===
 
=== Разложение числа на простые множители ===
 
<syntaxhighlight lang="c#" line>
 
<syntaxhighlight lang="c#" line>
 +
using System;
  
 +
namespace Hello
 +
{
 +
    class Program
 +
    {
 +
        static void Main(string[] args)
 +
        {
 +
            Console.Write("Введите целое число x (x>1):");
 +
            string str = Console.ReadLine();
 +
            Int32.TryParse(str, out var x);
 +
 +
            int i = 2;
 +
            Console.Write($"{x} = 1");
 +
 +
            do
 +
            {
 +
                if (x % i == 0)
 +
                {
 +
                    Console.Write($" * {i}");
 +
                    x /= i;
 +
                }
 +
                else
 +
                {
 +
                    i++;
 +
                }
 +
            } while (x != 1);
 +
 +
        }
 +
    }
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Текущая версия на 15:53, 20 июня 2022

Код программ

Сумма вводимых целых чисел

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("Введите число слагаемых:");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var n);
12 
13             int sum = 0;
14             for(int i = 1; i <= n; i++) {
15                 Console.Write($"Введите слагаемое №{i}:");
16                 str = Console.ReadLine();
17                 Int32.TryParse(str, out var x);
18                 sum += x;
19             }
20 
21             Console.WriteLine($"Сумма равна {sum}");
22         }
23     }
24 }

Произведение целых чисел

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("Введите число множителей:");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var n);
12 
13             int p = 1;
14             for(int i = 1; i <= n; i++) {
15                 Console.Write($"Введите множитель №{i}:");
16                 str = Console.ReadLine();
17                 Int32.TryParse(str, out var x);
18                 p *= x;
19             }
20 
21             Console.WriteLine($"Произведение равно {p}");
22         }
23     }
24 }

Сколько нечетных среди n введенных

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("Введите количество чисел:");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var n);
12 
13             int count = 0;
14             for(int i = 1; i <= n; i++) {
15                 Console.Write($"Введите целое число:");
16                 str = Console.ReadLine();
17                 Int32.TryParse(str, out var x);
18                 if (x % 2 != 0) {
19                     count++;
20                 }
21             }
22 
23             Console.WriteLine($"Количество нечетных равно {count}");
24         }
25     }
26 }

Защита от неверного ввода

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             int x;
10             do {
11                 Console.WriteLine("Введите x>0:");
12                 string str = Console.ReadLine();
13                 Int32.TryParse(str, out x);
14                 if (x <= 0) {
15                     Console.WriteLine("Неверный ввод");
16                 }
17             } while (x <= 0);
18         }
19     }
20 }

Вывод 10 первых степеней двойки

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             int x = 2;
10             
11             for (int i = 1; i <= 10; i++) {
12                 Console.WriteLine($"{i,3} {x,5}");
13                 x *= 2;
14             }
15         }
16     }
17 }

Вывод всех двухзначных чисел, кратных 5

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             int x = 10;
10 
11             while (x < 100) {
12                 Console.WriteLine(x);
13                 x += 5;
14             }
15         }
16     }
17 }

Вывод n первых чисел Фибоначчи

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.WriteLine("Введите целое число n (n > 1):");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var n);
12 
13             int a = 0; int b = 1;
14             Console.Write($"{a} {b} ");
15             for (int i = 1; i <= n - 2; ++i) {
16                 int tmp = a;
17                 a = b;
18                 b += tmp;
19                 Console.Write($"{b} ");
20             }
21         }
22     }
23 }

Найти НОД(A,B), используя алгоритм Евклида:

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.WriteLine("Введите A:");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var a);
12             
13             Console.WriteLine("Введите B:");
14             str = Console.ReadLine();
15             Int32.TryParse(str, out var b);
16 
17 
18             while (b != 0) {
19                 int tmp = a;
20                 a = b;
21                 b = tmp % b;
22             }
23 
24             Console.WriteLine($"НОД(A, B) = {a}");
25         }
26     }
27 }

Найти сумму цифр целого числа m

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.WriteLine("Введите m:");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var m);
12             
13             int sum = 0;
14             int m1 = Math.Abs(m);
15 
16             while (m1 > 0) {
17                 sum += m1 % 10;
18                 m1 /= 10;
19             }
20 
21             Console.WriteLine($"Сумма цифр числа {m} равна {sum}");
22         }
23     }
24 }

Найти max из введенных чисел

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("Введите целое число n (n>0):");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var n);
12             
13             Console.Write("Введите число №1:");
14             str = Console.ReadLine();
15             Int32.TryParse(str, out var x);
16 
17             int max = x;
18             
19             for(int i = 2; i <= n; i++) {
20                 Console.Write($"Введите число №{i}:");
21                 str = Console.ReadLine();
22                 Int32.TryParse(str, out x);
23                 if (x > max)
24                 {
25                     max = x;
26                 }
27             }
28 
29             Console.WriteLine($"Максимальное из введенных чисел: {max}");
30         }
31     }
32 }

Найти min, удовлетворяющее условию p(x)

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static Boolean p(int x)
 8         {
 9             return x > 0;
10         }
11         
12         static void Main(string[] args)
13         {
14             Console.Write("Введите целое число n (n>0):");
15             string str = Console.ReadLine();
16             Int32.TryParse(str, out var n);
17             
18             int min = int.MaxValue;
19             Boolean exists = false;
20             
21             for(int i = 1; i <= n; i++) {
22                 Console.Write($"Введите число №{i}:");
23                 str = Console.ReadLine();
24                 Int32.TryParse(str, out var x);
25                 if ((x < min) && p(x))
26                 {
27                     min = x;
28                     exists = true;
29                 }
30             }
31 
32             if (exists) {
33                 Console.WriteLine($"Минимальное из введенных чисел, удовлетворяющих условию: {min}");
34             } else {
35                 Console.WriteLine("Нет чисел, удовлетворяющих условию");
36             }
37         }
38     }
39 }

Есть ли среди введенных число k?

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("Введите целое число n (n>0):");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var n);
12             
13             Console.Write("Введите целое число k:");
14             str = Console.ReadLine();
15             Int32.TryParse(str, out var k);
16             
17             Boolean exists = false;
18             
19             for(int i = 0; i < n; i++) {
20                 Console.Write($"Введите число №{i+1}:");
21                 str = Console.ReadLine();
22                 Int32.TryParse(str, out var x);
23                 if (x == k)
24                 {
25                     exists = true;
26                     break;
27                 }
28             }
29 
30             if (exists) {
31                 Console.WriteLine($"Число {k} было введено");
32             } else {
33                 Console.WriteLine($"Число {k} не было введено");
34             }
35         }
36     }
37 }

Является ли число N>1 простым?

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("Введите целое число n (n>1):");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var n);
12             
13             
14             
15             Boolean isPrime = true;
16             
17             for(int i = 2; i < Math.Round(Math.Sqrt(n)); i++) {
18                 if (n % i == 0)
19                 {
20                     isPrime = false;
21                     break;
22                 }
23             }
24 
25             if (isPrime) {
26                 Console.WriteLine($"Число {n} является простым");
27             } else {
28                 Console.WriteLine($"Число {n} является составным");
29             }
30         }
31     }
32 }

Разложение числа на простые множители

 1 using System;
 2 
 3 namespace Hello
 4 {
 5     class Program
 6     {
 7         static void Main(string[] args)
 8         {
 9             Console.Write("Введите целое число x (x>1):");
10             string str = Console.ReadLine();
11             Int32.TryParse(str, out var x);
12 
13             int i = 2;
14             Console.Write($"{x} = 1");
15 
16             do
17             {
18                 if (x % i == 0)
19                 {
20                     Console.Write($" * {i}");
21                     x /= i;
22                 }
23                 else
24                 {
25                     i++;
26                 }
27             } while (x != 1);
28 
29         }
30     }
31 }