Другие языки программирования и технологии

Задача на C#. 7 КЛАСС

Задача 11
Пользователь вводит четырехзначное число. В нем меняют местами тысячи с сотнями и десятки с единицами. Найти сумму исходного числа и нового полученного числа. (Например, введено 1234, получено 2143, сумма 1234+2143=3377).
В чём вопрос?
Алексей Распопов
Алексей Распопов
54 422
Лучший ответ
Виталий Нечаев написать программу
using System;
namespace Example {
class Program {
static void Main() {
UInt16 number = 0;
do number = GetUInt16("Введите четырёхзначное число: "); while (!IsFourDigitNumber(number));
Console.WriteLine("Результат: " + Sum(number).ToString());
Console.ReadKey();
}
private static Boolean IsFourDigitNumber(UInt16 number) { return (number >= 1000 && number < 10000) ? true : false; }
private static UInt16 GetUInt16(String message) {
UInt16 number = 0;
Boolean result = true;
do {
Console.Write(message);
String value = Console.ReadLine();
result = UInt16.TryParse(value, out number);
if (!result) Console.WriteLine("Ошибка! ");
} while (!result);
return number;
}
private static UInt16 Swap(UInt16 number) {
String tmp = number.ToString();
tmp = Swap(tmp, 0, 1);
tmp = Swap(tmp, 2, 3);
return UInt16.Parse(tmp);
}
private static String Swap(String number, Int32 left, Int32 right) {
Char tmp = number[left];
number = number.Remove(left, 1).Insert(left, number[right].ToString());
number = number.Remove(right, 1).Insert(right, tmp.ToString());
return number;
}
private static Int32 Sum(UInt16 number) { return Swap(number) + number; }
}
}
Юра Трусяк
Юра Трусяк
92 072
Александр Попеливский Почитал я комментарии топикстартера к первому ответу… Ну, что сказать? Мы с вами метали бисер тут.
Вот тебе метод на скорую руку, ввод и вывод сделай сам.

public static int Example1(int n)
{
if (n < 1000 || 9999 < n) throw new ArgumentOutOfRangeException();

double sum = 0;
int i, t = 1;
int[] a = new int[4];

for (i = 0; i < 4; i++)
{
n = System.Math.DivRem(n, 10, out a[i]);
}

for (i = 0; i < 4; i++)
{
sum += System.Math.Pow(10, i) * (a[i] + a[i + t]);
t = -t;
}

return System.Convert.ToInt32(sum);
}
Дмитрий Храмогин n = 1; for (i = 0; i < 4; i++) { sum += n * (a[i] + a[i + t]); t = -t; n *= 10; }