Треугольники Для формирования изображения в компьютерной графике используются простейшие поверхности в виде треугольника. В зависимости от уровня требуемой детализации и сложности поверхности каждый треугольник может быть разделен еще на четыре треугольника и этот процесс может повторятся многократно. На рисунке ниже показан пример такого разделения для уровня детализации n = 0, 1 и 2

Необходимо вычислить количество красных треугольников для заданного уровня детализации n.

Input format

В первой строке задано одно целое число n (0 ≤ n ≤ 1018) – уровень детализации.

Output format

Выведите одно число – остаток от деления количества красных треугольников на (109 + 7) для заданного уровня детализации n.

(данную задачу нужно запрограммировать на языке с++. я запрограммировала, но при тестировании выдает ошибку)
#include
#include
using namespace std;
typedef unsigned long long ul;

ul modexp(ul x, ul y, ul N)
{
if (y == 0) return 1;
ul z = modexp(x, y / 2, N);
if (y % 2 == 0)
return (z*z) % N;
else
return (x*z*z) % N;
}

int main()
{
ul n, res;
cin >> n;

ul levels = n*2;
res = (((1+levels)*levels))/2;
res = modexp(res, 1, pow(10,9) + 7);
cout << res<}


Треугольники Для формирования изображения в компьютерной графике используются простейшие поверхности

Infasotka41 Infasotka41    1   10.04.2021 10:25    0

Другие вопросы по теме Информатика