Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 26.03.2016
Сообщений: 6
1

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300

15.03.2017, 11:31. Показов 2306. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
заполнить массив двадцатью первыми натуральными числами делящимися нацело на 13 или на17 и большими 300 C#
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2017, 11:31
Ответы с готовыми решениями:

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17
Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и...

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300
1. Заполнить массив: а) двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17...

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300
а) двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и большими 300; б)...

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и находящимися в ин
Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и...

5
269 / 253 / 186
Регистрация: 28.10.2015
Сообщений: 723
15.03.2017, 12:38 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Linq;
using System.Collections.Generic;
 
class Program
{
    public static void Main()
    {
        List<int> lst = new List<int>(20);
        for (int i = 301; lst.Count != 20; ++i)
        {
            if (i % 13 == 0 || i % 17 == 0) lst.Add(i);
        }
        Console.WriteLine(String.Join(", ", lst));
    }
}
0
foo();
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
15.03.2017, 13:35 3
Еще один вариант с проходом только по нужным числам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
 
class Program
{
    static void Main(string[] args)
    {
        List<int> result = new List<int>(20);
        int n13 = 300 - 300 % 13, n17 = 300 - 300 % 17;
        while (result.Count < 20)
        {
            if (n17 + 4 == n13)
                n17 += 17;
            result.Add(n13 > n17 + 4 ? n17 += 17 : n13 += 13);
        }
        Console.WriteLine(string.Join(", ", result));
    }
}
0
556 / 1418 / 38
Регистрация: 08.01.2017
Сообщений: 6,996
16.03.2017, 00:47 4
Цитата Сообщение от rattrapper Посмотреть сообщение
Еще один вариант с проходом только по нужным числам
Ещё:
C#
1
2
3
4
5
6
7
8
9
10
11
12
static void Main(string[] args)
        {
            List<int> result = new List<int>(20);
            int n=0, n13 = 300 - 300 % 13, n17 = 300 - 300 % 17;
            while (result.Count < 20)
            {                
                result.Add(n13 + 13 < n17 + 17 ? n13 += 13 : n17 += 17);
                if (n == result.Last()) result.Remove(result.Last());
                n = result.Last();                
            }
            Console.WriteLine(string.Join(", ", result));          
        }
0
269 / 253 / 186
Регистрация: 28.10.2015
Сообщений: 723
17.03.2017, 06:43 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Linq;
using System.Collections.Generic;
 
class Program
{
    public static void Main()
    {
        int x = 300;
        do x++; while (x % 13 != 0 && x % 17 != 0);
        SortedSet<int> queue = new SortedSet<int>() { x };
        List<int> list = new List<int>(20);
        do
        {
            x = queue.Min;
            queue.Remove(x);
            queue.Add(x + 13);
            queue.Add(x + 17);
            list.Add(x);
        } while (list.Count != 20);
        Console.WriteLine(String.Join(", ", list));
    }
}
1
556 / 1418 / 38
Регистрация: 08.01.2017
Сообщений: 6,996
17.03.2017, 11:43 6
ata, тут у вас ошибка - не правильно считает.
Как говорится, за изобретение (за SortedSet) - 5, за экзамен - 2

Вот так всё работает:
Добавлено через 13 минут
C#
1
2
3
4
5
6
7
8
static void Main()
        {
            int n13 = 300 - 300 % 13, n17 = 300 - 300 % 17;
            SortedSet<int> queue = new SortedSet<int>();
            while (queue.Count < 20)
            queue.Add(n13 + 13 < n17 + 17 ? n13 += 13 : n17 += 17);
            Console.WriteLine(string.Join(", ", queue));           
        }
1
17.03.2017, 11:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2017, 11:43
Помогаю со студенческими работами здесь

Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 и 17.
1 Заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 и 17. 2 Имеется...

Заполнить массив числами, делящимися нацело на 13 или на 17 и большими 300
заполнить массив двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и...

Заполнить одномерный массив двадцатью первыми натуральными числами, кратными 5-ти или 7-ми
Составьте программу, которая заполняет одномерный массив двадцатью первыми натуральными числами,...

Заполнить одномерный массив числами, делящимися нацело на 17 или 13 и больше 300
Заполнить одномерный массив из 12 элементов первыми натуральными числами,делящимися нацело на 17...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru