Найти остаток от деления - C (СИ) (79344)
Формулировка задачи:
Есть задача:
Вот мое решение:
Написать программу, которая находит остаток от деления числа 2^(2^1) + 2^(2^2) + ... + 2^(2^(N-1)) + 2^(2^N) на 7.
Напомним, что 2^N — это поизведение N множителей, каждый из которых равен 2
Входные данные
Со стандартного потока ввода вводится натуральное число N < 100000
Выходные данные
Вывести на экран одно число — остаток от деления.
Примеры
Ввод___Вывод
2______5
7______1
#include <stdio.h> long int twoPower(long int pow) { return (2 << (pow - 1)); } int main() { long int n, i, result = 0; scanf("%d", &n); for (i = 1; i <= n; ++i) result += twoPower(twoPower(i)); result %= 7; printf("%d", result); return 0; }
Вопрос №1
: Почему результаты не совпадают?Вопрос №2
: Существует ли какое-либо решение не "в лоб"?Решение задачи: «Найти остаток от деления»
textual
Листинг программы
////////////////////////////////////////////////////////////////////////////////// //Написать программу, которая находит остаток от деления //числа 2^(2^1) + 2^(2^2) + ... + 2^(2^(N-1)) + 2^(2^N) на 7. //Напомним, что 2^N — это поизведение N множителей, каждый из которых равен 2. ////////////////////////////////////////////////////////////////////////////////// #include <iostream> #include <limits> int main() { for(;;) { std::cout << "n = "; long long n; std::cin >> n; if(n < 1 || std::numeric_limits<long long>::max() < n) { break; } switch(n) { case 1: std::cout << "(2^(2^1)) % 7 == "; break; case 2: std::cout << "(2^(2^1) + (2^(2^2)) % 7 == "; break; case 3: std::cout << "(2^(2^1) + (2^(2^2) + (2^(2^3)) % 7 == "; break; default: std::cout << "(2^(2^1) + 2^(2^2) + ... + 2^(2^" << n - 1 <<") + 2^(2^" << n <<")) % 7 == "; } std::cout << (3 * n + n % 2) % 7 << std::endl << std::endl; } return 0; }
Объяснение кода листинга программы
- Вводится число N.
- В зависимости от значения N вычисляется выражение (2^(2^1)) % 7, (2^(2^1) + (2^(2^2)) % 7), (2^(2^1) + (2^(2^2) + (2^(2^3)) % 7)).
- Выводится результат вычисления.
- Выводится остаток от деления (3*N+N%2)%7.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д