Напишите в комментарии к этой записи консольные приложения для решения этих задач, указав код задачи.
Решены задачи: 1-10,12-14 Не решена: 11в),г)
Задачи
A2.1. Дано двузначное число. Найти:
а) число десятков в нем;
б) число единиц в нем;
в) сумму его цифр;
г) произведение его цифр.
A2.2. Дано двузначное число. Получить число, образованное при перестановке цифр заданного числа.
A2.3. Дано трехзначное число. Найти:
а) число единиц в нем;
б) число десятков в нем;
в) сумму его цифр;
г) произведение его цифр.
A2.4. Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево.
A2.5. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число.
A2.6. Дано трехзначное число. В нем зачеркнули последнюю справа цифру и приписали ее в начале. Найти полученное число.
A2.7. Дано трехзначное число. Найти число, полученное при перестановке первой и второй цифр заданного числа.
A2.8. Дано трехзначное число. Найти число, полученное при перестановке второй и третьей цифр заданного числа.
A2.9. Дано трехзначное число, в котором все цифры различны. Получить шесть чисел, образованных при перестановке цифр заданного числа.
A2.10. Дано четырехзначное число. Найти:
а) сумму его цифр;
б) произведение его цифр.
A2.11. Дано четырехзначное число. Найти:
а) число, полученное при прочтении его цифр справа налево;
б) число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа. Например, из числа 5434 получить 4543, из числа 7048 — 784;
в) число, образуемое при перестановке второй и третьей цифр заданного числа. Например, из числа 5084 получить 5804;
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа. Например, из числа 4566 получить 6645, из числа 7304 — 473.
Последнюю задачу решить двумя способами:
1) с выделением отдельных цифр заданного числа;
2) без выделения отдельных цифр заданного числа.
A2.12. Дано натуральное число n (n > 9). Найти:
а) число единиц в нем;
б) число десятков в нем.
A2.13. Дано натуральное число n (n > 99). Найти:
а) число десятков в нем;
б) число сотен в нем.
A2.14. Дано натуральное число n (n > 999). Найти:
а) число сотен в нем;
б) число тысяч в нем.
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
A2.9
int inputUser;
int units;
int tens;
int hundreds;
while (true)
{
Console.WriteLine(«\nВведите число от 100 до 999, в котором все цифры различны.»);
inputUser = int.Parse(Console.ReadLine());
if (inputUser >= 99 && inputUser <= 999)
{
units = (inputUser % 100) % 10;
tens = (inputUser % 100) / 10;
hundreds = inputUser / 100;
if (units != tens && tens != hundreds && units != hundreds)
{
Console.WriteLine($»{hundreds}{units}{tens}»);
Console.WriteLine($»{units}{hundreds}{tens}»);
Console.WriteLine($»{tens}{hundreds}{units}»);
Console.WriteLine($»{tens}{units}{hundreds}»);
Console.WriteLine($»{units}{tens}{hundreds}»);
break;
}
else Console.WriteLine(«Введите трехзначное число, в котором все цифры различны.»);
}
else Console.WriteLine(«Введите число от 100 до 999»);
Console.ReadKey();
Console.Clear();
}
A2.1
Console.WriteLine(«Введите двухзначное число»);
int userImput = int.Parse(Console.ReadLine());
if (userImput <= 99&& userImput >=10 )
{
int tens = userImput / 10;
int units = userImput % 10;
Console.WriteLine($»Число десятков в {userImput} равно: {tens} «);
Console.WriteLine($»Число единиц в {userImput} равно: {units} «);
Console.WriteLine($»Сумма цифр {userImput} равна: {tens + units}»);
Console.WriteLine($»Произведение цифр {userImput} равна: {tens * units}»);
} else
Console.WriteLine(«Введите число меньше 99 и больше 9»);
//A2.7
string StrInput = Console.ReadLine();
StrInput = StrInput.Replace(» «, string.Empty);
var str = String.Join(» «, StrInput.ToCharArray());
string[] StrArr = str.Split(new char[] {});
string NumFirst = StrArr[0];
string NumTwo = StrArr[1];
StrArr[0] = NumTwo;
StrArr[1] = NumFirst;
string StrOut = string.Join(«», StrArr);
Console.WriteLine(StrOut);
rkfcc
//A2.5. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число.
int number, firstDigit, secondDigit, thirdDigit, newNumber;
Console.Write(«Enter three-digit number: «);
number = int.Parse(Console.ReadLine());
if (number > 99 && number <= 999)
{
firstDigit = number / 100;
secondDigit = number % 100;
if (secondDigit >0 && secondDigit<10)
{
secondDigit *= 10;
newNumber = secondDigit + firstDigit;
}
else
{
newNumber = (secondDigit * 10) + firstDigit;
}
Console.WriteLine($»First digit- {firstDigit}\nSecond digit- {secondDigit}\nNew Number- {newNumber}»);
}
else
{
Console.WriteLine(«Wrong number»);
}
//A2.4. Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево.
int number, firstDigit, secondDigit, thirdDigit, newNumber;
Console.Write(«Enter three-digit number: «);
number = int.Parse(Console.ReadLine());
if (number >99 && number <=999)
{
firstDigit = number / 100;
secondDigit = (number — (firstDigit*100)) / 10;
thirdDigit = number % 10;
newNumber = (thirdDigit * 100) + (secondDigit * 10) + firstDigit;
Console.WriteLine($»First digit- {firstDigit}\nSecond digit- {secondDigit}\nThird digit- {thirdDigit}\nNew Number- {newNumber}»);
}
else
{
Console.WriteLine(«Wrong number»);
}
//A2.3. Дано трехзначное число. Найти:
// а) число единиц в нем;
// б) число десятков в нем;
// в) сумму его цифр;
// г) произведение его цифр.
int number, firstDigit, secondDigit, thirdDigit, sum, mult;
Console.Write(«Enter three-digit number: «);
number = Convert.ToInt32(Console.ReadLine());
if (number >99 && number <=999)
{
firstDigit = number / 100;
secondDigit = (number — (firstDigit*100))/10;
thirdDigit = number % 10;
sum = firstDigit + secondDigit + thirdDigit;
mult = firstDigit * secondDigit + thirdDigit;
Console.WriteLine($»First digit- {firstDigit}\nSecond digit- {secondDigit}\nThird digit- {thirdDigit}\nSumma- {sum}\nMultiplication- {mult}»);
}
else
{
Console.WriteLine(«Wrong number.»);
}
A2.9
//Дано трехзначное число, в котором все цифры различны.Получить шесть чисел, образованных при перестановке цифр заданного числа.
{
Console.Write(«Add number from 100-999:»);
int k = Convert.ToInt32(Console.ReadLine());//123
int a = k % 10;//3
int b = k % 100 / 10;//2
int c = k/ 100;//1
if (k <= 999 && k >= 100)
{
Console.WriteLine(«Число единиц в нем = {0}», k % 10);
Console.WriteLine(«Число десяток в нем = » + k / 10); // Суммирование и вывод на экран
Console.WriteLine(«Число sotni в нем = {0}», k / 100);
Console.WriteLine(«New number = » + a + b + c);
Console.WriteLine(«New number = » + a + c + b);
Console.WriteLine(«New number = » + b+ a+ c);
Console.WriteLine(«New number = » + b + c + a);
Console.WriteLine(«New number = » + c + b + a);
Console.WriteLine(«New number = » + c + a + b);
}
else
{
Console.WriteLine(«from 100-999 «);
}
}
А2.4
// Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево.
{
Console.Write(«Add number from 100-999:»);
int k = Convert.ToInt32(Console.ReadLine());
if (k <= 999 && k >= 100)
{
Console.WriteLine(«Число единиц в нем = {0}», k % 10);
Console.WriteLine(«Число десяток в нем = » + k / 10); // Суммирование и вывод на экран
Console.WriteLine(«Число sotni в нем = {0}», k / 100);
Console.WriteLine(«New number = {0}{1}{2}», k % 10, k % 100 / 10, k / 100);
}
else
{
Console.WriteLine(«from 100-999 «);
}
}
A2.2
// Дано двузначное число. Получить число, образованное при перестановке цифр заданного числа.
{
Console.Write(«Add number from 10-99:»);
int k = Convert.ToInt32(Console.ReadLine());
if (k <= 99 && k >= 10)
{
Console.WriteLine(«Число десяток в нем = » + k / 10); // Суммирование и вывод на экран
Console.WriteLine(«Число единиц в нем = {0}», k % 10);
Console.WriteLine(«New number = {0}{1}», k % 10, k / 10);
}
else
{
Console.WriteLine(«from 10-99 «);
}
}
A2.1
class Program
{
static void Main(string[] args)
// Дано двузначное число. Найти:
// а) число десятков в нем;
// б) число единиц в нем;
// в) сумму его цифр;
// г) произведение его цифр.
{
Console.Write(«Add number from 10-99:»);
int k = Convert.ToInt32(Console.ReadLine());
if (k <= 99 && k >= 10)
{
Console.WriteLine(«Число десяток в нем = » + k / 10); // Суммирование и вывод на экран
Console.WriteLine(«Число единиц в нем = {0}», k % 10);
Console.WriteLine(«Сумма его цифр = {0}», k % 10 + k / 10);
Console.WriteLine(«Произведение его цифр = «+(( k % 10) * (k / 10)));
}
else
{
Console.WriteLine(» from 10-99 «);
}
}
}
2.13 Дано натуральное число n (n > 99). Найти:
а) число десятков в нем;
б) число сотен в нем.
A.2.11в)
Console.WriteLine(«Enter any integer:»);
string digit = Console.ReadLine();
int num = int.Parse(digit);
int[] numbers = new int[digit.Length];
int index;
int buffer;
for (int i = numbers.Length-1; i >= 0; i—)
{
index = num % 10;
numbers[i] = index;
num /= 10;
}
int[] finalArray = numbers;
buffer = finalArray[1];
finalArray[1] = finalArray[2];
finalArray[2] = buffer;
foreach (int n in finalArray)
{
Console.Write($»{n} «);
}
A 2.11б)
Console.WriteLine(«Enter any integer:»);
string digit = Console.ReadLine();
int num = int.Parse(digit);
int[] numbers = new int[digit.Length];
int index = 0;
int buffer = 0;
for (int i = numbers.Length-1; i >= 0; i—)
{
index = num % 10;
numbers[i] = index;
num /= 10;
}
int[] finalArray = new int[numbers.Length];
for (int i = 0; i < finalArray.Length; i++)
{
if(i < finalArray.Length — 1)
{
buffer = numbers[i];
finalArray[i + 1] = buffer;
finalArray[i] = numbers[i + 1];
}
else
{
finalArray[i] = numbers[i];
}
i += 1;
}
foreach (int n in finalArray)
{
Console.Write($»{n} «);
}
A 2.9.
Console.WriteLine(«Enter any integer:»);
string digit = Console.ReadLine();
int number = int.Parse(digit);
int index;
int[] numbers = new int[digit.Length];
for (int i = 0; i < digit.Length; i++)
{
index = number % 10;
numbers[i] = index;
number /= 10;
}
int[] finalArray = new int[numbers.Length * 2];
Random random = new Random();
for (int i = 0; i < finalArray.Length; i++)
{
finalArray[i] = numbers[random.Next(0, numbers.Length)];
Console.Write(finalArray[i]);
}
A2.1
Console.WriteLine(«Enter integer:»);
string count = Console.ReadLine();
int number = int.Parse(count);
int index;
int units = 0;
int decades = 0;
int centuries = 0;
int sum = 0;
int multiply = 1;
for (int i = 0; i < count.Length; i++)
{
index = number % 10;
switch (i)
{
case 0:
units = index;
break;
case 1:
decades = index;
break;
case 2:
centuries = index;
break;
default:
break;
}
sum += index;
multiply *= index;
number /= 10;
}
Console.WriteLine($» units = {units}»);
Console.WriteLine($» decimals = {decades}»);
Console.WriteLine($» centuries = {centuries}»);
Console.WriteLine($» sum of numbers: {sum}»);
Console.WriteLine($» multiplying of numbers: {multiply}»);
A.2.2
Console.WriteLine($»Enter integer»);
string digit = Console.ReadLine();
for (int i = digit.Length; i > 0; i—)
{
Console.Write(digit[i-1]);
}
A2.4
2.9 Дано трехзначное число, в котором все цифры различны. Получить шесть чисел, образованных при перестановке цифр заданного числа.
Вопрос: можно ли как-то оптимизировать проверку ввода, на отсутствие совпадения чисел в введенном значении? Получилось сильно длинно и неудобно читать.
while (n1 != n2, n2 != n3, n3 != n1)
А2.5 Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число.
Долго думал как решить? Сколько потратил времени?
A2.11 B
using System;
public class Solve
{
public static void Main(string[] args)
{
string str = Console.ReadLine();
str = str.Replace(«0», «-«);
char x = str[0], x1 = str[1], x2 = str[2], x3 = str[3];
Console.Write($»{x1}{x}{x3}{x2}»);
}
}
a2.1
double n, a, b, c, x;
n = Convert.ToDouble(Console.ReadLine());
a = n / 100;
a = Math.Floor(a);
b = n / 10 — (a * 10);
b = Math.Floor(b);
x = (a * 100) + (b * 10);
c = n — x;
c = Math.Floor(c);
Console.WriteLine($»num: {c}{b}{a}»);
Console.WriteLine($»tens: {b}»);
Console.WriteLine($»ones: {c}»);
Console.WriteLine($»:: {a * b * c}»);
А2.1
Console.WriteLine(«Введите двузначнное число»);
int num = Convert.ToInt32(Console.ReadLine());
int num2 = num/10;
int num3 = num — (num2*10);
int num4 = num3 + num2;
Console.WriteLine («Количество десятсков » + num2);
Console.WriteLine («Количество единиц » + num3);
Console.WriteLine («Сумма «+ num4);
Console.WriteLine(«#1»);
Console.Write(«Введите двузначное число: «);
int num = Convert.ToInt32(Console.ReadLine());
if (num >= 10 & num = 10 & num = 100 & num = 100 & num = 100 & num = 100 & num = 100 & num = 100 & num = 100 & num = 1000 & num = 1000 & num 9)
{
n = n % 100;
int e = n % 10;
int d = n / 10;
Console.WriteLine(«Едениц {0}, десятков {1}», e, d);
}
else
{
Console.WriteLine(«Число меньше 9»);
}
Console.WriteLine(«#13»);
Console.Write(«Введите натуральное число которое больше 99, n: «);
int n = Convert.ToInt32(Console.ReadLine());
if (n > 99)
{
n = n % 1000;
int d = n / 10 % 10;
int s = n / 100;
Console.WriteLine(«Десятков {0}, сотен {1}», d, s);
}
else
{
Console.WriteLine(«Число меньше 9»);
}
Console.WriteLine(«#14»);
Console.Write(«Введите натуральное число которое больше 999, n: «);
int n = Convert.ToInt32(Console.ReadLine());
if (n > 999)
{
n = n % 10000;
int s = n / 100 % 10;
int t = n / 1000;
Console.WriteLine(«Сотен {0}, тысяч {1}», s, t);
}
else
{
Console.WriteLine(«Число меньше 9»);
}
задача 2.4
namespace Task
{
static class Program
{
private static void Main(string[] args)
{
Task1.NumberInputValidation();
}
}
}
namespace task.Tasks
{
static class Task1
{
#region NumberInputValidation
static public void NumberInputValidation()
{
Console.Write(«Введите трёхзначное число: «);
string enteredValue = Console.ReadLine();
if (!IsAllDigits(enteredValue))
{
Console.WriteLine(«Ошибка. Необходимо ввести число! Повторите ввод.»);
Clean();
NumberInputValidation();
}
else
{
short correctNumber = Convert.ToInt16(enteredValue);
#region CalculatingDigitsInANubmer
short digit1 = (short)(correctNumber / 100);
short digit2 = (short)(correctNumber % 100 / 10);
short digit3 = (short)(correctNumber % 100 % 10);
#endregion
Console.WriteLine($»Вы ввели число: {correctNumber}»);
Clean();
if ((correctNumber > 999) || (correctNumber < 100)&&(correctNumber-100))
{
Console.Write(«Ошибка! Введите число от 100 до 999 или от -999 до -100:\n»);
Clean();
NumberInputValidation();
}
else
{
if (correctNumber < 0)
{
digit1 *= (-1);
digit2 *= (-1);
digit3 *= (-1);
Console.WriteLine($"Вы ввели число: {correctNumber}, это число при прочтении справа налево выглядит так: {digit3}{digit2}{digit1}-");
}
else
{
Console.WriteLine($"Вы ввели число: {correctNumber}, это число при прочтении справа налево выглядит так: {digit3}{digit2}{digit1}");
}
}
}
}
#endregion
#region IsAllDigits
public static bool IsAllDigits(string enteredValue)
{
enteredValue = enteredValue.Trim();
if (enteredValue.Length == 0)
{
return false;
}
if (enteredValue[0] == '-')
{
for (int index = 1; index < enteredValue.Length; index++)
{
if (char.IsDigit(enteredValue[index]) == false)
{
return false;
}
}
return true;
}
else
{
for (int index = 0; index < enteredValue.Length; index++)
{
if (char.IsDigit(enteredValue[index]) == false)
{
return false;
}
}
return true;
}
}
#endregion
#region FieldCleaning
static void Clean()
{
Console.WriteLine("Нажмите любую клавишу для очистки поля ввода.");
Console.ReadKey();
Console.Clear();
}
#endregion
}
}
слишком удленил код. Можно ведь покороче сделать
2.10. Сумма и произведение цифр 4-значного числа.
int num, sum = 0, pro = 1;
Console.WriteLine(«Введите четырёхзначное число!»);
num = Convert.ToInt32(Console.ReadLine());
while (num > 0)
{
sum += num % 10;
pro *= num % 10;
num = (num — num % 10) / 10;
}
Console.WriteLine($»Сумма {sum}, произведение {pro}»);
Console.ReadKey();
A2.1. Дано двузначное число. Найти:
а) число десятков в нем;
б) число единиц в нем;
в) сумму его цифр;
г) произведение его цифр.
A2.2. Дано двузначное число. Получить число, образованное при перестановке цифр заданного числа.
Анна! верно. А чем Вам не понравились предыдущие решения?
Я просто брала и решала, не читая комменты.
A2.11. Дано четырехзначное число. Найти:
в) число, образуемое при перестановке второй и третьей цифр заданного числа. Например, из числа 5084 получить 5804;
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа. Например, из числа 4566 получить 6645, из числа 7304 — 473.
Последнюю задачу решить двумя способами:
1) с выделением отдельных цифр заданного числа;
2) без выделения отдельных цифр заданного числа.
Артемий! Ваше решение предпочтительней решения Никиты, так как он переставлял цифры при выводе, а у Вас формируются числа, которые только потом выводятся в консоли. Да и для пункта Вы привели два решения. Продолжайте так!
A2.14. Дано натуральное число n (n > 999). Найти:
а) число сотен в нем;
б) число тысяч в нем.
Елизавета! Решение верное. Попробуйте учесть мои замечания к Вашим решениям задач А2.12 и А2.13. Проанализируйте решения других авторов, может и там есть еще ошибки?
Ваш код работает не корректно если вводить числа больше 10000, мой код с этим справился:
Console.WriteLine(«Введите натуральное число, которое больше 999″);
string s = Console.ReadLine();
double n = Convert.ToDouble(s);
int l = s.Length;;
double h = n % Math.Pow(10, l — 1);
double t =h;
if (n > 999)
{
t = Math.Truncate(n / 1000);
h = Math.Truncate (Math.Truncate(n % Math.Pow(10, l — (l-3))) /100);
Console.WriteLine($»Количество сотен в числе: {h}»);
Console.WriteLine($»Количество тысяч в числе: {t}»);
}
else
{
Console.WriteLine($»Вы ввели некорректное число «);
}
A2.13. Дано натуральное число n (n > 99). Найти:
а) число десятков в нем;
б) число сотен в нем.
Елизавета! Ваше решение допустимо, оно в стиле решения задачи А2.12. Поэтому комментарии те же. Могу добавить, что в кратком решении нет необходимости использовать методы класса Math: Pow() и Truncate(). Сделайте Ваш алгоритм проще!
A2.12. Дано натуральное число n (n > 9). Найти:
а) число единиц в нем;
б) число десятков в нем.
Елизавета! Интересное решение. Хотя: 1) тема целочисленная арифметика (в условии задачи n — натуральное число, n=1,2,3,…).
2) если ввести n=245,6 , то в Вашей программе число десятков будет = 4 (верно), а число единиц — 5,9999999994 (как то не очень)
3) то есть, если нужно было бы обрабатывать вещественное число, то пришлось бы Вам еще поработать.
Для конкретной задачи достаточно написать:
Здесь используется свойство целочисленного деления, проверьте на любых данных!
Проверил прошлогоднее решение (см. НИКИТА 27.05.2020 В 03:35), в котором ответ будет неверным, если число не двухзначное (245 / 10 = 24). Добавил туда комментарий.
A2.1. Дано двузначное число. Найти:
а) число десятков в нем;
б) число единиц в нем;
в) сумму его цифр;
г) произведение его цифр.
Верно. Просьба просматривать предыдущие решения, чтобы не повторяться, хорошо?
2.11 Получить:
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа.
Например, из числа 4566 получить 6645, из числа 7304 — 473.
Задачу решить двумя способами:
1) с выделением отдельных элементов строки;
2) без выделения отдельных цифр заданного числа.
Первый способ — два варианта решения:
1.1) с выделением отдельных элементов строки — цифр заданного числа;
1.2) с использованием массива символов и их пересортировкой
Второй способ — без выделения отдельных цифр заданного числа.
Вариант в) решается любым из способов.
Подскажите пожалуйста, возможно ли задачу:
вариант г)2) решить одним циклом?
Чтобы цикл начинался с середины массива, но проходя массив, цикл не заканчивался, а начинался заново и шел до тех пор, пока мы не указали команду break; ?
Т.е. к примеру число 5678 помещаем в цикл и он начинает счет с семерки, потом восьмерка, за ней сразу же пятерка, шестерка и мы прерываем цикл.
Максим, какой в первом способе из 1.1 или 1.2 для Вас предпочтительнее?
Во втором случае, конечно, можно обойтись одним циклом:
даже без break и continue.
Но, если все-таки решили обходиться без работы с числами, а только с элементами строки, то хватит и одного оператора:
Хотя решение с числами тоже записывается в один оператор:
Смотрите также задачи на строки
и теорию.
Если вопрос был не риторический, то вариант 1.2 нравиться больше, т.к. вижу в нем больше возможностей, но это мое субъективное мнение учащегося.
А по мне для конкретной задачи вариант 1.1 проще, в одну строку, не нужно создавать массив символов. А Ваши аргументы? В чем больше возможностей и чем 1.2 по сути отличается от 1.1?
A2.11. Дано четырехзначное число. Найти:
а) число, полученное при прочтении его цифр справа налево;
б) число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа. Например, из числа 5434 получить 4543, из числа 7048 — 784;
Вариант а)
Вариант б)
Максим! Тоже вариант через массив символов.
В задаче б) любопытное соединение символов сделали.
Остались задачки в) и г).
Ответ Максиму, он написал:
1) Что означают знак доллар, квадратные и фигурные скобки в этих примерах?
Не нашел параграфа о них в разделе для начинающих: https://c-sharp.pro/?p=787.
Ответ: C# позволяет варьировать форматы вывода. Соберите все возможные варианты сами. Квадратные скобки — всегда массивы, хотя и здесь a — строка (для строк: a[3] это 4-й символ). Кавычки — строка символов, вставка фигурных скобок позволяет указывать элементы вывода, допустим так: Console.WriteLine(«{0}{1}»,a[1], a[0]); или еще проще Console.WriteLine(a[1]+a[0]);
Знак доллара перед строкой в кавычках означает интерполяцию. Найдите сами, где он будет полезен.
Вообще за всеми новшествами не уследишь. Я действую так: вижу новый элемент, тестирую, как он работает. Если он мне полезен, попадает в набор.
2) Правильно я понимаю, что по прохождению некоторых тем надо переходить в задачки и оттачивать навык на практике или же ответ на мои вопросы будут дальше по учебнику и пока не приступать к задачкам? Задаю этот вопрос, потому если брать данный пример (а их не мало идентичных), то для его решения необходимо использовать ветвление или цикл, а задачи для этих тем с уровнем L и I. Данная задача находится на уровне A.
Ответ: Про учебник я написал выше, я не Рихтер, вряд ли все успею разложить по полочкам. А в вопросе я узнаю геймера или прилежного студента. Буквы в задачнике не имеют отношения к уровням сложности, хотя последовательность тем задач учитывается в содержании задачников. Если Вы понимаете, как решать задачи одного подраздела, переходите к следующему, вовсе не обязательно все решать подряд, надоест.
Вопросы, которые мне задают, позволяют настроиться на мою целевую аудиторию (в сутки более 1000), спасибо.
A2.11. Дано четырехзначное число. Найти:
а) число, полученное при прочтении его цифр справа налево;
б) число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа. Например, из числа 5434 получить 4543, из числа 7048 — 784;
в) число, образуемое при перестановке второй и третьей цифр заданного числа. Например, из числа 5084 получить 5804;
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа. Например, из числа 4566 получить 6645, из числа 7304 — 473.
Последнюю задачу решить двумя способами:
1) с выделением отдельных цифр заданного числа;
2) без выделения отдельных цифр заданного числа.
1)
2) Так и не понял как это без выделения отдельных цифр.
Максим! например, так:
Сейчас начал просматривать коменты, после решения задач в данном разделе. Потрясающе! Эту задачу можно было решить со знанием, одних лишь переменных! Хочу поставить лайк))
Но вот как до этого додуматься обычному парню?:)
Максим! Для этого и нужно общение с программистами. Расширяйте кругозор, часто решение может быть совсем простым, если посмотреть на него с другой стороны или использовать иные средства (см. мой комментарий к задаче А2.11.г).
Если Вам понравился чей-то алгоритм, проанализируйте его, поймите смысл, затем используйте при решении своих задач.
Думаю, что сейчас все алгоритмы заново можно и не изобретать, их можно найти в Яндексе или погуглить.
Хотя есть и фундаментальные книги, как Дональд Кнут «Искусство программирования» в 3 томах, на русском языке.
A2.12. Дано натуральное число n (n > 9). Найти:
а) число единиц в нем;
б) число десятков в нем.
A2.13. Дано натуральное число n (n > 99). Найти:
а) число десятков в нем;
б) число сотен в нем.
A2.14. Дано натуральное число n (n > 999). Найти:
а) число сотен в нем;
б) число тысяч в нем.
Решение 2.12
Решение 2.13
Решение 2.14
Никита! Все три — зачет.
Хотя в задаче А2.12 при вводе трехзначного числа = 256 число десятков = 5, а не 25. Смотрите комментарий к решению Елизаветы в 2021 году.
Тут ошибка в коде есть, неправильно сотни выделяются в 2,14
Денис! Ваш комментарий по существу. Напишите, а как нужно?
вообще вроде все верно выделяет: 1256 покажет 12 сотен. (про задачу 2,14 замечание Дениса)
A2.10. Дано четырехзначное число. Найти:
а) сумму его цифр;
б) произведение его цифр.
A2.11. Дано четырехзначное число. Найти:
а) число, полученное при прочтении его цифр справа налево;
б) число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа. Например, из числа 5434 получить 4543, из числа 7048 — 784;
в) число, образуемое при перестановке второй и третьей цифр заданного числа. Например, из числа 5084 получить 5804;
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа. Например, из числа 4566 получить 6645, из числа 7304 — 473.
Последнюю задачу решить двумя способами:
1) с выделением отдельных цифр заданного числа;
2) без выделения отдельных цифр заданного числа.
Решение:
Зачет.
А 2.9 Дано трехзначное число, в котором все цифры различны. Получить шесть чисел, образованных при перестановке цифр заданного числа.
Решение:
Зачет.
Все комбинации можно было бы вывести одной строкой через запятую и пробел.
A2.6. Дано трехзначное число. В нем зачеркнули последнюю справа цифру и приписали ее в начале. Найти полученное число.
A2.7. Дано трехзначное число. Найти число, полученное при перестановке первой и второй цифр заданного числа.
A2.8. Дано трехзначное число. Найти число, полученное при перестановке второй и третьей цифр заданного числа.
Решение:
Зачет.
Никита, большое вам спасибо за коды! Да ещё и комбо-коды, то есть берёте несколько заданий и суёте в один код и в итоге результат выходит на все коды и 1 скриншот сделал и задание выполнено, получается одним кодом выполнил 3 задания… Ну разве это не круто? Так что спасибо вам большое!
А 2.5. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число.
Решение:
Зачет.
int a;
int b;
Console.WriteLine(«Введите число от 100 до 999: «);
a = Convert.ToInt32(Console.ReadLine());
while ((a 999))
{
Console.WriteLine(«Не правильно! Введите число от 100 до 999: «);
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
}
b = ((a — ((a / 100) * 100)) * 10) + (a / 100);
Console.WriteLine(b);
A 2.4. Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево.
Решение:
Зачет.
См. также комментарий к решению A.2.2.
.
A 2.3. Дано трехзначное число. Найти:
а) число единиц в нем;
б) число десятков в нем;
в) сумму его цифр;
г) произведение его цифр.
Решение:
Зачет.
A 2.2. Дано двузначное число. Получить число, образованное при перестановке цифр заданного числа.
Решение:
Зачет.
Правда, такую перестановку можно сделать и без вычислений:
А так:
Можно.
Но вообще то, нужно получить число (типа int, например).
У Никиты надо было его найти так:
Или так:
Выбирать Вам.
P.S.
Что означают знак доллар, квадратные и фигурные скобки в этих примерах?
ВЯЧЕСЛАВ РЫЧКОВ 27.05.2020 В 15:23
ИВАН 04.11.2020 В 14:31
Не нашел параграфа о них в разделе для начинающих: https://c-sharp.pro/?p=787 .
Правильно я понимаю, что по прохождению некоторых тем надо переходить в задачки и оттачивать навык на практике или же ответ на мои вопросы будут дальше по учебнику и пока не приступать к задачкам? Задаю этот вопрос, потому если брать данный пример (а их не мало идентичных), то для его решения необходимо использовать ветвление или цикл, а задачи для этих тем с уровнем L и I. Данная задача находится на уровне A.
МАКСИМ, ответы здесь, в ленте уже не помещаются:).
A2.1. Дано двузначное число. Найти:
а) число десятков в нем;
б) число единиц в нем;
в) сумму его цифр;
г) произведение его цифр.
Решение:
Зачет.
Разве число единиц будет равно остатку ?
Там же сказано кол-во чисел, не цифр, а это вроде бы значит что кол-во чисел будет равно самому числу. Или я ошибаюсь ?
Алексей! Число замените на количество:
A2.1. Дано двузначное число. Найти:
а) количество десятков в нем;
б) количество единиц в нем;
тогда смысл задачи четче.
Так бывает, неоднозначность формулировки. А въедливый программист всегда это может уточнить у заказчика.
Для числа 11 a%10 не подходит
Тут вообще число единиц некорректно считается, либо я задание не понял
int x;
int y;
int a;
int sum;
int prod;
Console.Write(«Введите двузначное число: «);
a = Convert.ToInt32(Console.ReadLine());
while ((a > 99) | (a < 10))
{
Console.Write(«Ошибка!Введите число от 10 до 99: «);
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
}
x = a / 10;
y = a % 10;
sum = x + y;
prod = x * y;
if (a == 11)
{
Console.WriteLine(«А) Число десятков: » + x);
Console.WriteLine(«Б) Число единиц: 2»);
Console.WriteLine(«В) Сумма цифр числа: » + sum);
Console.WriteLine(«Г) Произведение цифр числа: » + prod);
}
else if(y != 1)
{
Console.WriteLine(«А) Число десятков: » + x);
Console.WriteLine(«Б) Число единиц: » + 0);
Console.WriteLine(«В) Сумма цифр числа: » + sum);
Console.WriteLine(«Г) Произведение цифр числа: » + prod);
}
else
{
Console.WriteLine(«А) Число десятков: » + x);
Console.WriteLine(«Б) Число единиц: » + y);
Console.WriteLine(«В) Сумма цифр числа: » + sum);
Console.WriteLine(«Г) Произведение цифр числа: » + prod);