Обязательно объясните решение решите, плез: три пирата: нытик, стрелец и барс зарыли свои сокровища на одном острове. один из них зарыл возле дерева лимона, другой – банана, а третий – абрикоса. ёмкость для хранения тоже у каждого была своя: один использовал сундучок, второй – большую морскую ракушку, а третий – кожаный мешочек. определите имя пирата, а также где и в чем хранил свои сокровища каждый из них, если известно, что: • ракушку использовал не нытик. • тот, кто закопал сокровища под абрикосом, использовал мешочек. • барс закопал сундучок, но не под лимоном.
//Поскольку вы не указали структуру файла и язык программирования, то подберу их сам.
//ЯП: C#
//Структура: рост/имя/вес/страна проживания
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Prog
{
class Program
{
static void Main(string[] args)
{
string location = "C://Test//Persons.txt";
try
{
int size = File.ReadLines(location).Count();
if (size > 0)
{
List<string> person = new List<string>();
string[] tallestPerson = new string[4];
int maxHeight = -1;
int height = 0;
int index = 0;
StreamReader PersonsReader = new StreamReader(location, Encoding.Default);
for (int i = 0; i < size; i++)
{
person.Add(PersonsReader.ReadLine());
height = Convert.ToInt32(person[i].Remove(person[i].IndexOf("/")));
if (height > maxHeight)
{
maxHeight = height;
index = i;
}
}
string tmp = person[index];
int paramIndex = 0;
for (int j = 0; j < tmp.Length; j++)
{
if (tmp[j] != '/')
tallestPerson[paramIndex] += tmp[j];
else
paramIndex++;
}
Console.WriteLine("Самый высокий человек: " + tallestPerson[1]);
Console.WriteLine("Рост: " + tallestPerson[0] + " см");
Console.WriteLine("Вес: " + tallestPerson[2] + " кг");
Console.WriteLine("Страна проживания: " + tallestPerson[3]);
}
else
{
Console.WriteLine("Файл пустой!");
}
}
catch (Exception)
{
Console.WriteLine("Ошибка! Файл не нейден, либо нарушена его структура!");
}
finally
{
Console.ReadKey();
}
}
}
}
Воспользуемся самым простым при таблицы триад и тетрад.
Для начала разобъем справа-налево на разряды по четыре цифры:
10|1011.
Так как нам не хватает две цифры, то в начало добавим два незначащих нуля:
0010|1011.
Так как нам известны разряды, то обратимся к таблице тетрад.
Видим, что коду "0010" соответствует цифра "2", а к "1011" соответствует буква "B".
Итого наш ответ: "2B".
Можно и другим перевести в десятичную систему счисления.
Пронумеруем справа-налево цифры, начиная с нуля.
Переведем в десятичную систему счисления.
1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 32 + 8 + 2 + 1 = 43.
Для перевода в шестнадцатиричную систему счисления делим полученный ответ на "16" столбиком.
Решение смотри во вложении.