Все решается через степени двойки. 1. Номер года. Число от 1 до 2100. Можно перевести 2100 в двоичную систему и посмотреть, сколько бит оно займет. Но это долго. Ведь можно просто вспомнить, что 1 Кбайт - это 1024 байта или 2 в десятой степени. 2 в одиннадцатой 2048 (удваиваем), 2 в двенадцатой - 4096. Наш диапазон дат укладывается в интервал между 2048 и 4096, поэтому нам потребуется 12 бит. 2. Номер месяца - их 12. У нас есть 2 в четвертой - это 16, и два в кубе - только 8. Поэтому еще 4 бита запасаем на месяц. 3. Номер дня - максимальный 31. Мы знаем, что 2 в пятой степени равно 32, значит 5 бит будет достаточно. Всего нам потребуется 12+4+5=21 бит.
Using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double sum = 0; int N=50; for (int i = 1; i <= N; i++) sum += 1 / Math.Pow(i, 3); Console.WriteLine("Сумма = " + sum); Console.ReadKey(); } } }
1. Номер года. Число от 1 до 2100. Можно перевести 2100 в двоичную систему и посмотреть, сколько бит оно займет. Но это долго. Ведь можно просто вспомнить, что 1 Кбайт - это 1024 байта или 2 в десятой степени.
2 в одиннадцатой 2048 (удваиваем), 2 в двенадцатой - 4096. Наш диапазон дат укладывается в интервал между 2048 и 4096, поэтому нам потребуется 12 бит.
2. Номер месяца - их 12. У нас есть 2 в четвертой - это 16, и два в кубе - только 8. Поэтому еще 4 бита запасаем на месяц.
3. Номер дня - максимальный 31. Мы знаем, что 2 в пятой степени равно 32, значит 5 бит будет достаточно. Всего нам потребуется 12+4+5=21 бит.
ответ: 21 бит.
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double sum = 0;
int N=50;
for (int i = 1; i <= N; i++)
sum += 1 / Math.Pow(i, 3);
Console.WriteLine("Сумма = " + sum);
Console.ReadKey();
}
}
}