A2. Целочисленная арифметика. Выделение цифр в записи числа

Напишите в комментарии к этой записи консольные приложения для решения этих задач, указав код задачи.
Решены задачи: 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: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Понравилась статья? Поделиться с друзьями:
3 3 голоса
Рейтинг статьи
Подписаться
Уведомить о

88 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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»);

Последний раз редактировалось 10 месяцев назад павел ем

//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.»);
}

Последний раз редактировалось 1 год назад Aleksey ем

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). Найти:
а) число десятков в нем;
б) число сотен в нем.

int a;
      Console.WriteLine("введите число = ");
      a = int.Parse(Console.ReadLine());
      if(a > 99)
      {
        Console.WriteLine("Десятки в числе = " + a / 10);
        Console.WriteLine("Сотни в числе = " + a / 100);
      }
      else
      {
        Console.WriteLine($"Число {a} меньше 99-ти");
      }

         

//1 task
while (true)
            {
                Console.Write("Add number from 1-99:\t");
                int number = int.Parse(Console.ReadLine());
                if (number <= 99)
                {
 
                    int one_num = number % 10;
                    int ten_num = number / 10;
                    int sum = one_num + ten_num;
                    int multi = one_num * ten_num;
                    Console.WriteLine("unit number: " + one_num + "\nd  ecimal number: " + ten_num);
                    Console.WriteLine("sum number: " + sum + "\nproduct number: " + multi);
                }
                else
                {
                    Console.WriteLine("Pls add from 1-99 ");
                }
                Console.WriteLine("\n");
            }
Последний раз редактировалось 2 лет назад daxz ем

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} «);
      }

Последний раз редактировалось 2 лет назад de_Lich ем

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

static void Main(){  
            System.Console.WriteLine("Введите 3-х значное число");
            int n = Convert.ToInt32(Console.ReadLine());
            if (n>100 && n<=999){
                int number = n % 100;
                int n1 = n/100 ;
                int n2 = number / 10 ;
                int n3 = number % 10 ;
            
                System.Console.WriteLine($"{n3}{n2}{n1}");
            }else{
                System.Console.WriteLine("error.");
            }
        }

2.9 Дано трехзначное число, в котором все цифры различны. Получить шесть чисел, образованных при перестановке цифр заданного числа.

Вопрос: можно ли как-то оптимизировать проверку ввода, на отсутствие совпадения чисел в введенном значении? Получилось сильно длинно и неудобно читать.

            Console.WriteLine("Введите трехзначное число, в котором все цифры различны");
            int Num;
            while (!(int.TryParse(Console.ReadLine(), out Num) && Num >= 12 && Num <= 987 && Num / 100 != (Num % 100) / 10 && Num / 100 != Num % 10 && (Num % 100) / 10 != Num % 10)) Console.WriteLine("Введено неверное значение") ;
            int n1 = Num / 100;
            int n2 = (Num % 100) / 10;
            int n3 = Num % 10;
            int[] a1 = { n1, n2, n3 };
            for (int a = 0; a<a1.Length; a++)
            {
                for(int b = 0; b<a1.Length; b++)
                {
                    for(int c =0; c< a1.Length;c++)
                    {
                        if (a1[a] != a1[b] && a1[a] != a1[c] && a1[b] != a1[c])  Console.WriteLine($"Вариант: {a1[a]}{a1[b]}{a1[c]}");
                        else  continue;
                    }
                }
            }

while (n1 != n2, n2 != n3, n3 != n1)

А2.5 Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число.

            Console.WriteLine("Введите число от 0 до 999");
            int Num;
            while (!(int.TryParse(Console.ReadLine(), out Num) && Num >= 0 && Num <= 999)) Console.WriteLine ("Введено неверное значение");
            int n1 = Num / 100;
            int n23 = Num % 100;
            int Out = (n23 * 10) + n1;
            Console.WriteLine(String.Format($"{Out:d3}"));
Последний раз редактировалось 2 лет назад Михаил ем

Долго думал как решить? Сколько потратил времени?

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. Дано двузначное число. Получить число, образованное при перестановке цифр заданного числа.

Console.Write("Введите двузначное число: ");
int number = Convert.ToInt32(Console.ReadLine());
int n1 = number % 10;
int n2 = number / 10;
int su = n1 + n2;
int pr = n1 * n2;
int revers = n1 * 10 + n2;
Console.WriteLine($"Десятки: { n2}, единицы: { n1},");
Console.WriteLine($"сумма: { su}, произведение: { pr},");
Console.WriteLine($"перестановка: { revers}.");

Я просто брала и решала, не читая комменты.

A2.11. Дано четырехзначное число. Найти:
в) число, образуемое при перестановке второй и третьей цифр заданного числа. Например, из числа 5084 получить 5804;
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа. Например, из числа 4566 получить 6645, из числа 7304 — 473.
Последнюю задачу решить двумя способами:
1) с выделением отдельных цифр заданного числа;
2) без выделения отдельных цифр заданного числа.

Random rand = new Random();
int n = rand.Next(1000,10000);
int c1 = n / 1000;
int c2 = n % 1000 / 100;
int c3 = n % 1000 % 100 / 10;
int c4 = n % 1000 % 100 % 10;
Console.WriteLine("Число: " + n);
Console.WriteLine("1 цифра: " + c1);
Console.WriteLine("2 цифра: " + c2);
Console.WriteLine("3 цифра: " + c3);
Console.WriteLine("4 цифра: " + c4);
int v = c1 * 1000 + c3 * 100 + c2 * 10 + c4;
Console.WriteLine("Результат (пункт в): " + v);
int g1 = c3* 1000 + c4 * 100 + c1 * 10 + c2;
Console.WriteLine("Результат (пункт г1): " + g1);
int ch1 = n / 100;
int ch2 = n % 100;
int g2 = ch2 * 100 + ch1;
Console.WriteLine("Результат (пункт г2): " + g2);>/pre>

A2.14. Дано натуральное число n (n > 999). Найти:
а) число сотен в нем;
б) число тысяч в нем.

Console.WriteLine("Задание 14");
Console.WriteLine("Введите натуральное число, которое больше 999");
string s = Console.ReadLine();
double n = Convert.ToDouble(s);
int l = s.Length;
int l2 = l;
int l3 = l;
double t = n % Math.Pow(10, l - 1);
double h = n % Math.Pow(10, l - 1);
while (h > 999)
{
   l2--;
   h = h % Math.Pow(10, l2 - 1);
}
h = Math.Truncate(h / 100);
if (l == 4)
{
   t = Math.Truncate(n / 1000);
}
else
{
   while (t > 9999)
   {
      l3--;
      t = t % Math.Pow(10, l3 - 1);
   }
   t = Math.Truncate(t / 1000);
}
Console.WriteLine($"Количество сотен в числе: {h}");
Console.WriteLine($"Количество тысяч в числе: {t}");

Ваш код работает не корректно если вводить числа больше 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). Найти:
а) число десятков в нем;
б) число сотен в нем.

static void Main(string[] args)
        {
            Console.WriteLine("Задание 13");
            Console.WriteLine("Введите натуральное число, которое больше 99");
            string s = Console.ReadLine();
            double n = Convert.ToDouble(s);
            
            if (n < 99)
            {
                Console.WriteLine("Некорректный ввод");
            }
            else
            {
                int l = s.Length;
                int l1 = l;
                int l2 = l;
                double d = n % Math.Pow(10, l - 1);
                double h = n % Math.Pow(10, l - 1);
                while (d > 99)
                {

                    l1--;
                    d = d % Math.Pow(10, l1 - 1);

                }
                d = Math.Truncate(d / 10);
                if (l == 3)
                {
                    h = Math.Truncate(n / 100);
                }
                else
                {
                    while (h > 999)
                    {
                        l2--;
                        h = h % Math.Pow(10, l2 - 1);
                    }
                    h = Math.Truncate(h / 100);
                }

                Console.WriteLine($"Количество десятков в числе: {d}");
                Console.WriteLine($"Количество сотен в числе: {h}");
            }

A2.12. Дано натуральное число n (n > 9). Найти:
а) число единиц в нем;
б) число десятков в нем.

static void Main(string[] args)
{
   Console.WriteLine("Задание 12");
   Console.WriteLine("Введите натуральное число, которое больше 9");
   string s = Console.ReadLine();
   double n = Convert.ToDouble(s);
   int l = s.Length;
   double e = n % Math.Pow(10, l - 1);
   double d = n % Math.Pow(10, l - 1);
   int l1 = l;
   if (l == 2)
   {
      d = Math.Truncate(n / 10);
   }
   else
   {
      while (d > 99)
      {
         l1--;
         d = d % Math.Pow(10, l1 - 1);
      }
      d = Math.Truncate(d / 10);
   }
   while (e > 9)
   {
      l--;
      e = e % Math.Pow(10, l - 1);
   }
   Console.WriteLine($"Количество единиц в числе: {e}");
   Console.WriteLine($"Количество десятков в числе: {d}");
}

A2.1. Дано двузначное число. Найти:
а) число десятков в нем;
б) число единиц в нем;
в) сумму его цифр;
г) произведение его цифр.

int des;
int ed;
int summ;
Console.Write("x=");
byte x = byte.Parse(Console.ReadLine());
des = x / 10;
ed = x - (des * 10);
Console.WriteLine($"Количество десятков {des:f0}");
Console.WriteLine($"Количество единиц {ed:f0}");
summ = des + ed;
Console.WriteLine($"Сумма всех чисел двузначного числа {summ:f0}");

2.11 Получить:
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа.
Например, из числа 4566 получить 6645, из числа 7304 — 473.
Задачу решить двумя способами:
1) с выделением отдельных элементов строки;
2) без выделения отдельных цифр заданного числа.

Первый способ — два варианта решения:
1.1) с выделением отдельных элементов строки — цифр заданного числа;

int number = 7304;
string s = number.ToString();
Console.WriteLine(Convert.ToInt32($"{s[2]}{s[3]}{s[0]}{s[1]}"));

1.2) с использованием массива символов и их пересортировкой

int intNumber = 4566;
string stringNumber = Convert.ToString(intNumber);
char[] arr = stringNumber.ToString().ToCharArray();
string memory = Convert.ToString(arr[2] + "" + arr[3] + "" + arr[0] + "" + arr[1]);
Console.WriteLine(Convert.ToInt32(memory));

Второй способ — без выделения отдельных цифр заданного числа.

string s_number = "7304";
char[] arr2 = s_number.ToString().ToCharArray();
string firstHalf = "";
string lastHalf = "";
for (int i = 0; i < arr2.Length / 2; i++)
   firstHalf += arr2[i];
for (int i = arr.Length / 2; i < arr.Length; i++)
{
  if (arr2[i] == 0)
    continue;
  lastHalf += arr2[i];
}
s_number = lastHalf + firstHalf;
Console.WriteLine(Convert.ToInt32(s_number));

Вариант в) решается любым из способов.

Подскажите пожалуйста, возможно ли задачу:
вариант г)2) решить одним циклом?
Чтобы цикл начинался с середины массива, но проходя массив, цикл не заканчивался, а начинался заново и шел до тех пор, пока мы не указали команду break; ?
Т.е. к примеру число 5678 помещаем в цикл и он начинает счет с семерки, потом восьмерка, за ней сразу же пятерка, шестерка и мы прерываем цикл.

Если вопрос был не риторический, то вариант 1.2 нравиться больше, т.к. вижу в нем больше возможностей, но это мое субъективное мнение учащегося.

A2.11. Дано четырехзначное число. Найти:
а) число, полученное при прочтении его цифр справа налево;
б) число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа. Например, из числа 5434 получить 4543, из числа 7048 — 784;
Вариант а)

Console.Write("Введите любое целое число: ");
string a = Console.ReadLine();
char[] arr = a.ToString().ToCharArray();
string memory="";
for (int i = arr.Length-1; i >= 0; i--)
{
   memory += arr[i];
   //  Console.Write(arr[i]);
}
Console.WriteLine(Convert.ToInt32(memory));

Вариант б)

int intNumber = 1357;
string stringNumber = Convert.ToString(intNumber);
char[] arr = stringNumber.ToString().ToCharArray();
string memory = Convert.ToString(arr[1]+""+arr[0]+""+arr[3]+""+arr[2]);
Console.WriteLine(Convert.ToInt32(memory));

A2.11. Дано четырехзначное число. Найти:
а) число, полученное при прочтении его цифр справа налево;
б) число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа. Например, из числа 5434 получить 4543, из числа 7048 — 784;
в) число, образуемое при перестановке второй и третьей цифр заданного числа. Например, из числа 5084 получить 5804;
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа. Например, из числа 4566 получить 6645, из числа 7304 — 473.
Последнюю задачу решить двумя способами:
1) с выделением отдельных цифр заданного числа;
2) без выделения отдельных цифр заданного числа.
1)

Console.WriteLine("Введите четырехзначное число");
string chislo = Console.ReadLine() ;
int [] array1 = new int[4] {Convert.ToInt32(chislo.Substring(0,1)), Convert.ToInt32(chislo.Substring(1,1)), Convert.ToInt32(chislo.Substring(2,1)), Convert.ToInt32(chislo.Substring(3,1))};
int a = Convert.ToInt32(chislo);
if ( a > 9999 )
   Console.WriteLine("Ошибка число не четырехзначное");	
else
{	
   if ( a < 999 )
      Console.WriteLine("Ошибка число не четырехзначное");	
   else
   {
      Console.WriteLine("Число, полученное при прочтении его цифр справа налево " + array1 [3] + array1 [2] + array1 [1] + array1 [0]);
      Console.WriteLine("Число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа " + array1 [1] + array1 [0] + array1 [3] + array1 [2]);	
      Console.WriteLine("Число, образуемое при перестановке второй и третьей цифр заданного числа " + array1 [0] + array1 [2] + array1 [1] + array1 [3]);	
      Console.WriteLine("Число, образуемое при перестановке двух первых и двух последних цифр заданного числа  " + array1 [2] + array1 [3] + array1 [0] + array1 [1]);		
   }
}

2) Так и не понял как это без выделения отдельных цифр.

Сейчас начал просматривать коменты, после решения задач в данном разделе. Потрясающе! Эту задачу можно было решить со знанием, одних лишь переменных! Хочу поставить лайк))
Но вот как до этого додуматься обычному парню?:)

A2.12. Дано натуральное число n (n > 9). Найти:
а) число единиц в нем;
б) число десятков в нем.

A2.13. Дано натуральное число n (n > 99). Найти:
а) число десятков в нем;
б) число сотен в нем.

A2.14. Дано натуральное число n (n > 999). Найти:
а) число сотен в нем;
б) число тысяч в нем.

Решение 2.12

int n;
int x,y;
Console.Write("Введите число больше 9: ");
n = Convert.ToInt32(Console.ReadLine());
while (n<10)
{
   Console.Write("Ошибка!Введите число больше 9: ");
   n = Convert.ToInt32(Console.ReadLine());
}
//Выделяем единицы и десятки
x = n % 10;
y = n / 10;
//Выводим ответы
Console.WriteLine("\n        Ответы:");
Console.WriteLine($"А 2.12) а) В числе содержится {x} единиц");
Console.WriteLine($"        б) В числе содержится {y} десятков\n");

Решение 2.13

int n;
int x,y;
Console.Write("Введите число больше 99: ");
n = Convert.ToInt32(Console.ReadLine());
while (n < 100)
{
   Console.Write("Ошибка!Введите число больше 99: ");
   n = Convert.ToInt32(Console.ReadLine());
}
//Выделяем десятки и сотни
x = n / 10;
y = n / 100;
//Выводим ответы
Console.WriteLine("\n        Ответы:");
Console.WriteLine($"А 2.13) а) В числе содержится {x} десятков");
Console.WriteLine($"        б) В числе содержится {y} сотен\n");

Решение 2.14

int n;
int x,y;
Console.Write("Введите число больше 999: ");
n = Convert.ToInt32(Console.ReadLine());
while (n < 1000)
{
   Console.Write("Ошибка!Введите число больше 999: ");
   n = Convert.ToInt32(Console.ReadLine());
}
//Выделяем сотни и тысячи
x = n / 100;
y = n / 1000;
//Выводим ответы
Console.WriteLine("\n        Ответы:");
Console.WriteLine($"А 2.14) а) В числе содержится {x} сотен");
Console.WriteLine($"        б) В числе содержится {y} тысяч");
Console.ReadKey();

Тут ошибка в коде есть, неправильно сотни выделяются в 2,14

вообще вроде все верно выделяет: 1256 покажет 12 сотен. (про задачу 2,14 замечание Дениса)

A2.10. Дано четырехзначное число. Найти:
а) сумму его цифр;
б) произведение его цифр.

A2.11. Дано четырехзначное число. Найти:
а) число, полученное при прочтении его цифр справа налево;
б) число, образуемое при перестановке первой и второй, третьей и четвертой цифр заданного числа. Например, из числа 5434 получить 4543, из числа 7048 — 784;
в) число, образуемое при перестановке второй и третьей цифр заданного числа. Например, из числа 5084 получить 5804;
г) число, образуемое при перестановке двух первых и двух последних цифр заданного числа. Например, из числа 4566 получить 6645, из числа 7304 — 473.
Последнюю задачу решить двумя способами:
1) с выделением отдельных цифр заданного числа;
2) без выделения отдельных цифр заданного числа.
Решение:

int x,y,z,k;
int a;
//Объявляем переменные для задания 2.10
int sum, prod;
//Объявляем переменные для задания 2.11
int first,second;
//Пользователь вводит 4-х значное число
Console.Write("Введите 4-х значное число: ");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
//Проверяем является ли введённое число 4-х значным
while ((a > 9999) | (a < 1000))
{
   Console.Write("Ошибка!Введите число от 1000 до 9999: ");
   a = Convert.ToInt32(Console.ReadLine());
   Console.WriteLine();
}          
//Определяем отдельные цифры числа
k = a / 1000;
z = (a / 100) % 10;
x = (a % 100) / 10;
y = a % 10;
//Определяем первую и вторую части числа
first = a / 100;
second = a % 100;
//Находим произведение и сумму цифр числа
sum = k + z + x + y;
prod = k * z * x * y;
// Выводим ответы
Console.WriteLine($"А 2.10) а) Сумма цифр числа: {sum}");
Console.WriteLine($"        б) Произведение цифр числа: {prod}\n");
Console.WriteLine($"А 2.11) а) Если прочитать число справа налево, получится: {y}{x}{z}{k}");
Console.WriteLine($"        б) Если переставить первую со второй и третью с четвёртой цифрой: {z}{k}{y}{x}");
Console.WriteLine($"        в) Если переставить вторую и третью цифру числа: {k}{x}{z}{y}");
Console.WriteLine($"        г1) Если переставить две первые и две последние цифры: {x}{y}{k}{z}");
Console.WriteLine($"        г2) Если переставить две первые и две последние цифры: {second}{first}\n");
Console.ReadKey();

А 2.9 Дано трехзначное число, в котором все цифры различны. Получить шесть чисел, образованных при перестановке цифр заданного числа.
Решение:

int x;
int y;
int z;
int a;
//Пользователь вводит 3-х значное число
Console.Write("Введите трёхзначное число,чтобы ни одна цифра не повторялась: ");
a = Convert.ToInt32(Console.ReadLine());
//Проверяем является ли введённое число трёхзначным
while ((a > 999) | (a < 100))
{
   Console.Write("Ошибка!Введите число от 100 до 999: ");
   a = Convert.ToInt32(Console.ReadLine());
   Console.WriteLine();
}
z = a / 100;
x = (a / 10) % 10;
y = a % 10;
//Выводим ответы
Console.WriteLine($"Если переставить цифры, может получиться: {x}{y}{z}");
Console.WriteLine($"Если переставить цифры, может получиться: {x}{z}{y}");
Console.WriteLine($"Если переставить цифры, может получиться: {y}{x}{z}");
Console.WriteLine($"Если переставить цифры, может получиться: {y}{z}{x}");
Console.WriteLine($"Если переставить цифры, может получиться: {z}{x}{y}");
Console.WriteLine($"Если переставить цифры, может получиться: {z}{y}{x}");
Console.ReadKey();

A2.6. Дано трехзначное число. В нем зачеркнули последнюю справа цифру и приписали ее в начале. Найти полученное число.
A2.7. Дано трехзначное число. Найти число, полученное при перестановке первой и второй цифр заданного числа.
A2.8. Дано трехзначное число. Найти число, полученное при перестановке второй и третьей цифр заданного числа.
Решение:

int x;
int y;
int z;
int a;
Console.Write("Введите трёхзначное число: ");
a = Convert.ToInt32(Console.ReadLine());
while ((a > 999) | (a < 100))
{
   Console.Write("Ошибка!Введите число от 100 до 999: ");
   a = Convert.ToInt32(Console.ReadLine());
   Console.WriteLine();
}
z = a / 100;
x = (a / 10)%10;
y = a % 10;
Console.WriteLine($"А 2.6) Если зачеркнуть правую цифру и приписать в начале, получится: {y}{z}{x}");
Console.WriteLine($"А 2.7) Если переставить первую и вторую цифру местами, получится: {x}{z}{y}");
Console.WriteLine($"А 2.8) Если переставить вторую и третью цифру местами, получится: {z}{y}{x}");
Console.ReadKey();

Никита, большое вам спасибо за коды! Да ещё и комбо-коды, то есть берёте несколько заданий и суёте в один код и в итоге результат выходит на все коды и 1 скриншот сделал и задание выполнено, получается одним кодом выполнил 3 задания… Ну разве это не круто? Так что спасибо вам большое!

А 2.5. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число.
Решение:

int x;
int y;
int z;
int a;
Console.Write("Введите трёхзначное число: ");
a = Convert.ToInt32(Console.ReadLine());
while ((a > 999) | (a < 100))
{
   Console.Write("Ошибка!Введите число от 100 до 999: ");
   a = Convert.ToInt32(Console.ReadLine());
   Console.WriteLine();
}
x = (a / 10)%10;
y = a % 10;
z = a / 100;
Console.WriteLine($"Если зачеркнуть левую цифру и приписать в конце, получится: {x}{y}{z}");
Console.ReadKey();

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. Дано трехзначное число. Найти число, полученное при прочтении его цифр справа налево.
Решение:

int x;
int y;
int z;
int a;
Console.Write("Введите трёхзначное число: ");
a = Convert.ToInt32(Console.ReadLine());
while ((a > 999) | (a < 100))
{
   Console.Write("Ошибка!Введите число от 100 до 999: ");
   a = Convert.ToInt32(Console.ReadLine());
   Console.WriteLine();
}
x = (a / 10)%10;
y = a % 10;
z = a / 100;
Console.WriteLine($"Если прочитать число справа налево, получится: {y}{x}{z}");
Console.ReadKey();

.

Последний раз редактировалось 1 год назад Никита ем

A 2.3. Дано трехзначное число. Найти:
а) число единиц в нем;
б) число десятков в нем;
в) сумму его цифр;
г) произведение его цифр.
Решение:

int x;
int y;
int z,k;
int a;
int sum;
int prod;
Console.Write("Введите трёхзначное число: ");
a = Convert.ToInt32(Console.ReadLine());
while ((a > 999) | (a < 100))
{
   Console.Write("Ошибка!Введите число от 100 до 999: ");
   a = Convert.ToInt32(Console.ReadLine());
   Console.WriteLine();
}
x = a / 10;
y = a % 10;
z = a / 100;
k = x % 10;
sum = k + y + z;
prod = k * y * z;
Console.WriteLine("А) Число десятков: " + x);
Console.WriteLine("Б) Число единиц: " + y);
Console.WriteLine("В) Сумма цифр числа: " + sum);
Console.WriteLine("Г) Произведение цифр числа: " + prod);
Console.ReadKey();

A 2.2. Дано двузначное число. Получить число, образованное при перестановке цифр заданного числа.
Решение:

int x;
int y;
int a;
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;
Console.WriteLine($"Если переставить цифры, получится: {y}{x}");
Console.ReadKey();

А так:

string a=Console.Readline();
Console.WriteLine($"{a[1]}{a[0]"});
uint n = Convert.ToUInt32(Console.ReadLine());
uint firstValue = n / 10;
uint secondValue = n % 10;
if (n >= 10 && n <= 99)
{
   string s1 = Convert.ToString(firstValue);
   string s2 = Convert.ToString(secondValue);
   int result = Convert.ToInt32(s2 + s1);
   Console.WriteLine(result);  
}
else
  Console.WriteLine("Введите двухзначное число");

P.S.
Что означают знак доллар, квадратные и фигурные скобки в этих примерах?
ВЯЧЕСЛАВ РЫЧКОВ 27.05.2020 В 15:23

string s = a.ToString();
string s1 = s[1].ToString() + s[0].ToString();
Console.WriteLine(s1);

ИВАН 04.11.2020 В 14:31

string a=Console.Readline();
Console.WriteLine($"{a[1]}{a[0]"});

Не нашел параграфа о них в разделе для начинающих: https://c-sharp.pro/?p=787 .
Правильно я понимаю, что по прохождению некоторых тем надо переходить в задачки и оттачивать навык на практике или же ответ на мои вопросы будут дальше по учебнику и пока не приступать к задачкам? Задаю этот вопрос, потому если брать данный пример (а их не мало идентичных), то для его решения необходимо использовать ветвление или цикл, а задачи для этих тем с уровнем L и I. Данная задача находится на уровне A.

МАКСИМ, ответы здесь, в ленте уже не помещаются:).

A2.1. Дано двузначное число. Найти:
а) число десятков в нем;
б) число единиц в нем;
в) сумму его цифр;
г) произведение его цифр.
Решение:

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;
Console.WriteLine("А) Число десятков: " + x);
Console.WriteLine("Б) Число единиц: " + y);
Console.WriteLine("В) Сумма цифр числа: " + sum);
Console.WriteLine("Г) Произведение цифр числа: " + prod);
Console.ReadKey();

Разве число единиц будет равно остатку ?
Там же сказано кол-во чисел, не цифр, а это вроде бы значит что кол-во чисел будет равно самому числу. Или я ошибаюсь ?

Для числа 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);

88
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x