0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 111
1

Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В

18.09.2015, 13:39. Показов 2391. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В (А и В вводятся с клавиатуры)

в консоле если можно ^^
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2015, 13:39
Ответы с готовыми решениями:

Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В
Ребят,напишите программу полностью! Найти количество трехзначных чисел, сумма цифр которых равна...

Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В
Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой...

Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В
Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой...

Найти количество трехзначных чисел, сумма цифр которых равна a, а само число заканчивается цифрой b
Числа a и b – случайные числа, а из интервала [1; 28), b из интервала [0,10). Спасибо.

6
22 / 22 / 16
Регистрация: 04.06.2015
Сообщений: 126
18.09.2015, 14:54 2
числа вводятся через Enter
трёхзначное число, я так понимаю, без нулей спереди? (именно числа, а не трёхцифровые п-ти)

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B;
            A = int.Parse(Console.ReadLine());
            B = int.Parse(Console.ReadLine());
            int iCount = A - B;
            if(iCount < 0 || iCount > 18)
            { Console.Write(0); }
            else
            {
                if(iCount > 9)
                { iCount -= 9; }
                Console.WriteLine("{0}", iCount);
            }
            Console.ReadKey();
        }
    }
}
0
217 / 216 / 114
Регистрация: 14.01.2013
Сообщений: 459
18.09.2015, 15:20 3
Вот мой вариант (тупым перебором)
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace makawaka
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число А:");
            int A = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите число B:");
            int B = Convert.ToInt32(Console.ReadLine());
            List<int> numbers = new List<int>();
            int lol = 0;
            for(int i=100;i<1000;i++)
            {
                if (i % 10 == B)
                {
                    if(i/100 + (i%100)/10 + i%10 == A)
                    {
                        numbers.Add(i);
                    }
                }
            }
            if(numbers.Count==0)
            {
                Console.WriteLine("Нет трёхзначных чисел удовлетворяющих условиям");
            }
            else
            {
                for(int i=0;i<numbers.Count;i++)
                {
                    Console.WriteLine(numbers[i]);
                }
                Console.WriteLine("Количество чисел удовлетворяющих условиям: {0}",numbers.Count);
            }
            Console.Read();
        }
    }
}
Пытливый Ум, Я сначала подумал, что вы задание не правильно поняли, а потом проверил и всё работает правильно.
Не вкурю почему так получается? Просветите, плиз

Добавлено через 5 минут
ах, нет, не получается ввел 27 и 9

Добавлено через 3 минуты
просто доработать нужно, похоже
1
22 / 22 / 16
Регистрация: 04.06.2015
Сообщений: 126
19.09.2015, 19:28 4
согласен. ошибся в алгоритме
ну по факту надо разложить сумму на два слагаемых. в комбе у нас подобное было
но в данном случае можно и непосредственно проверить
в случаях когда A-B равно 1 или 18 у нас единственный способ разложить на слагаемые
когда 2 или 17 - 2 и т.п.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B;
            A = int.Parse(Console.ReadLine());
            B = int.Parse(Console.ReadLine());
            int iCount = A - B;
            if(iCount < 0 || iCount > 18)
            { Console.Write(0); }
            else
            {
                if(iCount > 9)
                { iCount = 18 - iCount; }
                Console.WriteLine("{0}", iCount);
            }
            Console.ReadKey();
        }
    }
}
нужен будет более развёртнутый ответ, пишите в личку
0
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 111
25.09.2015, 07:56  [ТС] 5
Цитата Сообщение от Пытливый Ум Посмотреть сообщение
согласен. ошибся в алгоритме
ну по факту надо разложить сумму на два слагаемых. в комбе у нас подобное было
но в данном случае можно и непосредственно проверить
в случаях когда A-B равно 1 или 18 у нас единственный способ разложить на слагаемые
когда 2 или 17 - 2 и т.п.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            int A, B;
            A = int.Parse(Console.ReadLine());
            B = int.Parse(Console.ReadLine());
            int iCount = A - B;
            if(iCount < 0 || iCount > 18)
            { Console.Write(0); }
            else
            {
                if(iCount > 9)
                { iCount = 18 - iCount; }
                Console.WriteLine("{0}", iCount);
            }
            Console.ReadKey();
        }
    }
}
нужен будет более развёртнутый ответ, пишите в личку
А как вывести все эти числа?
0
22 / 22 / 16
Регистрация: 04.06.2015
Сообщений: 126
06.10.2015, 10:42 6
makawaka, если ещё актуально
у меня какая-то шляпа с личными сообщениями (из-за браузера не отправляются, похоже)
на всякий продублирую сюда
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
using System;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void PrintNumbers(int iStartNum1, int iStartNum2, int iNum3, int iNumberCount)
        {
            while (iNumberCount-- > 0)
            { Console.WriteLine("{0}{1}{2}", iStartNum1--, iStartNum2++, iNum3); }
        }
        static void Main(string[] args)
        {
            int A, B;
            A = int.Parse(Console.ReadLine());
            B = int.Parse(Console.ReadLine());
            int iCount = A - B;
            if(iCount < 1 || iCount > 18)
            { Console.WriteLine("Total Numbers: 0"); }
            else
            {
                if (iCount > 9)
                { PrintNumbers(9, iCount - 9, B, iCount = 19 - iCount); }
                else
                { PrintNumbers(iCount, 0, B, iCount); }
                Console.WriteLine("Total Numbers: {0}", iCount);
            }
            Console.ReadKey();
        }
    }
}
я подправил свой код. Ввод можете редактировать на свой вкус

Добавлено через 7 минут
функция вывода принимает в качестве аргументов первую цифру (начальное значение), вторую (начальное значение), третью (она вводится с клавиатуры) и количество трёхзначных чисел, удовлетворяющих условию
И кстати, там была ошибка: не
C#
1
iCount = 18 - iCount;
а
C#
1
iCount = 19 - iCount;
(в случае ввода A = 27 и B = 9 у нас одно число - 999)
1
1143 / 872 / 505
Регистрация: 09.04.2014
Сообщений: 2,054
06.10.2015, 13:19 7
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите число А:");
            int A = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Введите число B:");
            int B = Convert.ToInt32(Console.ReadLine());
            int cnt = 0;
            int x = 100 + B;
            while (x < 1000)
            {
                if (x / 100 + (x % 100) / 10 + x % 10 == A)
                {
                    Console.WriteLine(x);
                    cnt++;
                }
                x += 10;
            }
            Console.WriteLine("Количество чисел удовлетворяющих условиям: {0}", cnt);
        }
    }
0
06.10.2015, 13:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2015, 13:19
Помогаю со студенческими работами здесь

Найти количество трехзначных чисел, сумма цифр которых равна A, а само число заканчивается цифрой B
Найти количество трехзначных чисел, сумма цифр которых равна A, а само число заканчивается цифрой B...

Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В (А и В вводятся с клавиатуры)
Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В...

Найти колличество трехначных чисел сумма цифр которых равно А, а само число заканчивается цифрой В(А и В вводятся с клавиатуры)
Немогли бы Вы написать решение этой задачи: Найти колличество трехначных чисел сумма цифр...

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


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

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

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