Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/20: Рейтинг темы: голосов - 20, средняя оценка - 4.75
nikolos130393
2 / 2 / 0
Регистрация: 16.09.2012
Сообщений: 98
1

Ввести целые положительные числа A и B. Найти их наибольший общий делитель

16.09.2012, 16:49. Просмотров 3571. Ответов 10
Метки нет (Все метки)

Люди помогите написать три проги на шарпе.

1прога) Ввести целые положительные числа A и B. Найти их наибольший общий делитель
(НОД), используя алгоритм Евклида: НОД(A, B)=НОД(B, A mod B), если B ≠ 0;
НОД(A, 0)=A, где «mod» обозначает операцию взятия остатка от деления.

2прога) Осуществить ввод последовательности целых чисел в количестве не меньшем двух.
Вычислить сумму тех из них, порядковые номера которых - простые числа.
Последовательность потенциально не ограничена, окончанием последовательности
служит число 0.

3прога) Ввести целое число N > 0. Найти значение выражения 1.1 – 1.2 + 1.3 – ... (N
слагаемых, знаки чередуются). Условный оператор не использовать.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2012, 16:49
Ответы с готовыми решениями:

Даны два числа. Найти их наибольший общий делитель
Даны два числа. Найти их наибольший общий делитель. Формат входных данных Вводятся два...

Найти наибольший общий делитель
Найти наибольший общий делитель Для чисел 56 и 30

Найти наибольший общий делитель и наименьшее общее кратное двух целых чисел.
Циклические программы. Найти наибольший общий делитель и наименьшее общее кратное двух целых чисел.

Найти наибольший общий делитель двух натуральных чисел по алгоритму Евклида, используя рекурсию
Visual C# НОД по Евклиду я нашел, а вот как быть с рекурсией? Подскажите пожалуйста... private...

Наибольший общий делитель
Даны натуральные числа n,m; найти НОД(m,n). Использовать программу, включающую рекурсивную...

10
Памирыч
Почетный модератор
21097 / 8825 / 1080
Регистрация: 11.04.2010
Сообщений: 11,012
16.09.2012, 16:53 2
nikolos130393, на будущее - один вопрос - одна тема.
1
nikolos130393
2 / 2 / 0
Регистрация: 16.09.2012
Сообщений: 98
16.09.2012, 16:55  [ТС] 3
по второй чуть наработки есть , просто не пойму что дальше делать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 int n = 0;
            int m = Convert.ToInt16(Console.ReadLine());
            int[] mas = new int[m];
            do
            {
                n = Convert.ToInt16(Console.ReadLine());
            }
            while (n != 0);
            if (m < 2)
                Console.WriteLine("Введено менее 2х чисел!");
           int sum=0;
           for (int i = 1; i <= n; i++)
               if (i % 1 == i && i % i == 1) sum = n + (n + 1);
               
           Console.WriteLine(sum);
        }
А вот с двумя другими беда.

Добавлено через 59 секунд
А всё понял, просто не знал ))) сори))
0
Errantry
9 / 9 / 3
Регистрация: 13.09.2012
Сообщений: 55
16.09.2012, 17:04 4
По первой:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите A = ");
            int a = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите B = ");
            int b = int.Parse(Console.ReadLine());
            int nod = Nod(a, b);
            Console.WriteLine("НОД = " + nod.ToString());
            Console.ReadLine();
        }
 
        static int Nod(int x, int y)
        {
            if (y != 0)
                return Nod(y, x % y);
            else
                return x;
        }
    }
}
1
16.09.2012, 17:04
nikolos130393
2 / 2 / 0
Регистрация: 16.09.2012
Сообщений: 98
16.09.2012, 17:10  [ТС] 5
Спасибо Errantry, очень выручил!))
0
freeba
Неадекват
1309 / 1102 / 211
Регистрация: 02.04.2010
Сообщений: 2,551
Записей в блоге: 2
Завершенные тесты: 2
16.09.2012, 18:38 6
Так?
C#
1
2
int n = 456;
Console.WriteLine((-1*n/20) + (n % 2)*(1+n/10));
Добавлено через 6 минут
Нет, не так. не учел сотые, тысячные...
0
nikolos130393
2 / 2 / 0
Регистрация: 16.09.2012
Сообщений: 98
16.09.2012, 18:52  [ТС] 7
у меня всё это выражение начинается 1,1 и так далее (1,2 1,3 1,4) просто чередуется знак + и -
0
Errantry
9 / 9 / 3
Регистрация: 13.09.2012
Сообщений: 55
16.09.2012, 21:22 8
По третьей:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите N ");
            int n = int.Parse(Console.ReadLine());
            int znak = 1;
            double res = 0;
            for (int i = 1; i <= n; i++)
            {
                res = res + znak * (1 + 0.1 * i);
                znak = -znak;
            }
            Console.WriteLine("result = " + res.ToString());
            Console.ReadLine();
        }
    }
}
Можно еще добавить проверку на N>0
0
nikolos130393
2 / 2 / 0
Регистрация: 16.09.2012
Сообщений: 98
16.09.2012, 21:39  [ТС] 9
Спасибо огромное выручил)))
0
Burnakov
1 / 1 / 1
Регистрация: 03.09.2012
Сообщений: 22
16.09.2012, 22:20 10
C#
1
2
3
4
5
6
7
8
9
10
11
12
            Console.Write("Enter a nuber: ");
            int num = int.Parse(Console.ReadLine());
            int sign = -1;
            decimal result = 0;
            for (decimal i = -1.1M; Math.Abs(i) <= num; i -= 0.1M)
            {
                Console.Write("{0} ",i * sign);
                result += i * sign;
                sign *= -1;
            }
            Console.WriteLine("\n\nResult: "+result);
            Console.ReadLine();
0
Psilon
Master of Orion
Эксперт .NET
6039 / 4893 / 903
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
16.09.2012, 23:13 11
Вторая:
C#
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Collections.Generic;
using System.Linq;
 
 
namespace IsPrime
{
    internal class Program
    {
        private static bool IsPrime(int x)
        {
            if (x < 1) return false;
            for (int i = 2; i * i <= x; i++)
                if ((x % i) == 0) return false;
            return true;
        }
 
 
        private static void Main()
        {
            var list = new List<int>();
            var input = -1;
            Console.WriteLine("Вводите числа. Для выхода наберите 0");
            while (input != 0)
            {
                if (int.TryParse(Console.ReadLine(), out input))
                    list.Add(input);
                else
                    Console.WriteLine("Ошибка. Вводить можно только целые числа");
            }
            if (list.Count < 2)
            {
                Console.WriteLine("Ошибка. Должно быть введено не менее 2 элементов. Введено: {0}",
                                  list.Count.ToString());
                return;
            }
            int i = 0;
            int sum = list.Where(x => IsPrime(++i)).Sum();
            Console.WriteLine("Сумма равна {0}", sum.ToString());
            Console.Write("\n\nПрограмма завершена. Для выхода нажмите любую клавишу");
            Console.ReadKey(true);
        }
    }
}
0
16.09.2012, 23:13
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2012, 23:13

Определить наибольший общий делитель
Определите наибольший общий делитель трех чисел, написав функцию определения наибольшего общего...

Вычислить НОД(Наибольший общий делитель)
Задача в C#. Ввести два целых числа А и В. Вычислить НОД(Наибольший общий делитель) Делителями...

Массив данных с НОД (наибольший общий делитель)
Задача: заполнить массив по возростанию(размер массива так же сами вводим). Необходимо определить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru