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

TestMethod для задания "Найти натуральные числа, которые делятся на каждую из своих цифр"

13.06.2021, 15:26. Показов 1309. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Не получается проверить через TestMethod
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public bool zxc(int n)
          {
               int div = default;
               int num = n;
               while (num != 0)
               {
                    div = num % 10;
                    if (div == 0) return false;
                    if (n % div != 0) return false;
                    num /= 10;
               }
               return true;
          }
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public void test_1()
          {
               int[] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
               int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15 };
               MyClass z = new MyClass();
               for(int i=0;i<=x.Length;i++)
               {
                    if (z.zxc(i))
                    {
                         Assert.AreEqual(x[i],a[i]);
                    }
               }
          }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2021, 15:26
Ответы с готовыми решениями:

Найти все натуральные числа, не превосходящие n, которые делятся на каждую из своих цифр
Господа программисты! Задание вроде бы не сложное, но можно использовать только while и if. Все проблема у меня уходит в разложения...

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Как написать через подпрограмму, можете подсказать или код написать, а только через рекурсию получилось static bool func_1(int m) ...

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Как написать через out и ref При выводе форма зависает, думаю что проблема может быть в выходном значении s static void func_2(int...

3
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
13.06.2021, 15:42
nyxnyxnyx, полно код твой можно ли показать ?

Добавлено через 6 минут
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
45
46
47
using System;
 
namespace CsharpConsole
{
    class MyClass
    {
        public bool zxc(int n)
        {
            int div = default;
            int num = n;
            while (num != 0)
            {
                div = num % 10;
                if (div == 0) return false;
                if (n % div != 0) return false;
                num /= 10;
            }
            return true;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            int[] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
            int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15 };
 
            MyClass z = new MyClass();
 
            int i;
            Console.WriteLine("For array x:");
            for (i=0;i<x.Length;i++)
                if (z.zxc(x[i]))
                    Console.Write($"{x[i]} ");
            Console.WriteLine();
 
            Console.WriteLine("For array a:");
            for (i = 0; i < a.Length; i++)
                if (z.zxc(a[i]))
                    Console.Write($"{a[i]} ");
            Console.WriteLine();
 
            Console.ReadKey();
        }
    }
}
0
0 / 0 / 0
Регистрация: 18.11.2020
Сообщений: 42
13.06.2021, 15:49  [ТС]
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
 private void Button1_Click(object sender, EventArgs e)
        {
               MyClass f = new MyClass();
               double Pl = f.s(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text), Convert.ToDouble(textBox3.Text));
               textBox4.Text = Convert.ToString(Pl);
 
        }
 
          private void Button2_Click(object sender, EventArgs e)
          {
               int n = Convert.ToInt32(textBox5.Text);
               listBox1.Items.Clear();
               MyClass z = new MyClass();
               for (int i = 1; i <= n; i++)
               {
                    if (z.zxc(i))
                    {
                         listBox1.Items.Add(i);
                    }
               }
          }
     }
public class MyClass
     {
          public double s(double a, double b, double c)
          {
               double p = (a + b + c) / 2;
               return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
          }
 
          public bool zxc(int n)
          {
               int div = default;
               int num = n;
               while (num != 0)
               {
                    div = num % 10;
                    if (div == 0) return false;
                    if (n % div != 0) return false;
                    num /= 10;
               }
               return true;
          }
 
     }
public class UnitTest_MyClass
     {
          [TestMethod]
          public void Test_3_4_5_6returned()
          {
               // исходные данные
               double x = 3;
               double y = 4;
               double z = 5;
               double rez = 6;
               // получение значения с помощью тестируемого метода
               MyClass f = new MyClass();
               double d = f.s(x, y, z);
               // сравнение ожидаемого результата с полученным
               Assert.AreEqual(rez, d);
 
          }
 
          [TestMethod]
          public void Test_7_4_5_6returned()
          {
               double x = 0;
               double y = 4;
               double z = 5;
               double rez = 6;
               MyClass f = new MyClass();
               double d = f.s(x, y, z);
               Assert.AreEqual(rez, d);
 
          }
 
          [TestMethod]
          public void test_1()
          {
               int[] x = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
               int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15 };
               MyClass z = new MyClass();
               for(int i=0;i<=x.Length;i++)
               {
                    if (z.zxc(i))
                    {
                         Assert.AreEqual(a.Length,i);
                    }
               }
          }
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
13.06.2021, 16:05
Лучший ответ Сообщение было отмечено nyxnyxnyx как решение

Решение

nyxnyxnyx, чтобы протестировать решение вида "найдите все числа" нужно чтобы был метод который возвращает коллекцию чисел. Напишите его и тогда сможете написать тест вида
Code
1
2
3
var числа = НайтиВсеЧисла(n);
int[] expected = {/* ожидаемый результат */};
Assert.That().Коллекция(числа).Равна().Коллекции(expected);
Добавлено через 14 минут
В рамках приведенного вами кода можно так поступить
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void test_1()
{
    int[] all = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
    int[] correct = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15 };
    MyClass z = new MyClass();
    foreach (int n in all)
    {
        if (z.zxc(n))
        {
            Assert.IsTrue(correct.Contains(n), $"Число {n} делится на каждую из своих цифр, но метод вернул false");
        }
        else
        {
            Assert.IsFalse(correct.Contains(n),  $"Число {n} НЕ делится на каждую из своих цифр, но метод вернул true");
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2021, 16:05
Помогаю со студенческими работами здесь

Найти все натуральные числа, не превосходящие заданного N, которые делятся на каждую из своих цифр
Не могу никак решить задачу. Мой код по факту просто ничего не считает, а как сделать по-другому или исправить свой код не понимаю от слова...

Как подсчитать все натуральные числа массива, которые меньше М и которые делятся на каждую из своих цифр
Как подсчитать все натуральные числа данного массива, которые меньше М и которые делятся на каждую из своих цифр в данном коде: namespace...

Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. static Программа: static void...

На интервале от 1 до N найти натуральные числа которые делятся на каждую из своих цифр
Вот собственно задача: На интервале от 1 до N найти натуральные числа которые делятся на каждую из своих цифр Вот программа: program...

Найти все натуральные числа, которые делятся на каждую из своих цифр
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. Использовать функции.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru