С клавиатуры вводится целое многозначное число, которое имеет нечетное количество цифр.
Найти среднюю цифру числа, если она четная, то поменять ее на 0; если она нечетная, то поменять ее на 9.
Вывести полученное число.
через метод
Другие языки программирования и технологии
Задача на языке C# Помогите решить
принять вводные данные как строку, определить количество символов в строке, поделить на 2, привести к целому числу, прибавить 1, получить знак с соответствующем порядковым номером, поделить с остатком на 2. если результат 0, то поменять знач на 0, если 1, поменять знак на 9, собрать строку по кускам и вывести пользователю
using System;
namespace example {
class Program {
static void Main() {
Int64 number = Input();
number = Convert(number);
Console.WriteLine(" Результат: " + number);
Console.ReadKey();
}
static Int64 Convert(Int64 number) {
Int64 tmp = number;
Int64 sign = 1;
if (number < 0) sign = -1;
string temp = Math.Abs(tmp).ToString();
int len = temp.Length;
int index = len >> 1;
Int64 n = Int64.Parse(temp[index].ToString());
temp = temp.Remove(index, 1);
if (n % 2 == 0) temp = temp.Insert(index, "0");
else temp = temp.Insert(index, "9");
return Int64.Parse(temp) * sign;
}
static Int64 Input() {
Int64 number;
int tmp;
do {
Console.Write(" Введите заданное число: ");
number = Int64.Parse(Console.ReadLine());
tmp = Math.Abs(number).ToString().Length;
} while (tmp % 2 != 1);
return number;
}
}
}
namespace example {
class Program {
static void Main() {
Int64 number = Input();
number = Convert(number);
Console.WriteLine(" Результат: " + number);
Console.ReadKey();
}
static Int64 Convert(Int64 number) {
Int64 tmp = number;
Int64 sign = 1;
if (number < 0) sign = -1;
string temp = Math.Abs(tmp).ToString();
int len = temp.Length;
int index = len >> 1;
Int64 n = Int64.Parse(temp[index].ToString());
temp = temp.Remove(index, 1);
if (n % 2 == 0) temp = temp.Insert(index, "0");
else temp = temp.Insert(index, "9");
return Int64.Parse(temp) * sign;
}
static Int64 Input() {
Int64 number;
int tmp;
do {
Console.Write(" Введите заданное число: ");
number = Int64.Parse(Console.ReadLine());
tmp = Math.Abs(number).ToString().Length;
} while (tmp % 2 != 1);
return number;
}
}
}
Можно без перевода в строку с использованием оператора %
Конкретней пишите что непонятно - будем помогать, а не решать всё за Вас.
Конкретней пишите что непонятно - будем помогать, а не решать всё за Вас.
узнать колво всех цифр (думаю что знаете как0
опред средн. (тут есть множ. вариантов) (например-колво всех цифер дел на 2 к цел части прибавляем 1)(7/2=3 3+1=4 4 и есть средняя цифра
если при дел на 2 остаток=0 то присвоить 0
если при дел на 2 ост <>(не равен) 0 то присвоить 9(можно было сократить на строчку командой- иначе присвоить 9 )
вывод
опред средн. (тут есть множ. вариантов) (например-колво всех цифер дел на 2 к цел части прибавляем 1)(7/2=3 3+1=4 4 и есть средняя цифра
если при дел на 2 остаток=0 то присвоить 0
если при дел на 2 ост <>(не равен) 0 то присвоить 9(можно было сократить на строчку командой- иначе присвоить 9 )
вывод
Похожие вопросы
- Помогите решить задачу на языке c++. Не понимаю условия в конце кода.
- Помогите решить задачи на языке C# Срочно
- Помогите, пожалуйста, решить задачу на языке C++
- C# помогите решить задачу...
- Помощь по задаче на языке C++
- Задача на языке C с алгебраическими фракталами. Осуществить программную реализацию построения КУБИЧЕСКОГО ФРАКТАЛА
- Задача на Си шарпе помогите решить
- Программа на языке C++, помогите описать :|
- C# Помогите решить задачку.
- C# помогите решить