Форум программистов, компьютерный форум CyberForum.ru

Делимость на 3 С++ - C++

Восстановить пароль Регистрация
 
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
01.11.2015, 14:08     Делимость на 3 С++ #1
Дана последовательность 1, 12, 123, 1234, 12345, 123456, 1234567, 12345678, 123456789, 12345678910, 1234567891011, ....
Подсчитайте, сколько элементов этой последовательности среди первых n делятся на три.
Входные данные: Одно натуральное число n (1 ≤ n ≤ 231 - 1).
Выходные данные: Вывести одно найденное число.
Подскажите пожалуйста, как сделать задачу, я конкретно понимаю алгоритм, но не знаю как соединять числа и просматривать их как единое целое. Буду очень благодарен, желательно код с объяснением, но буду рад любой помощи.
Входные данные: 4
Выходные данные: 2
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2015, 14:08     Делимость на 3 С++
Посмотрите здесь:

Делимость на 13
C++ Делимость и не делимость двочных чисел
Turbo Pascal Делимость на 11
Turbo Pascal Делимость на 7
C++ Найти цифру числа, проверить делимость
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
01.11.2015, 14:16     Делимость на 3 С++ #2
число делится на три если сумма цифр делится на три ,сумма цифр первого числа 1 ,второго 3 ,и тд ,то есть можно просто считать сумму цифр
warhast
7 / 7 / 3
Регистрация: 02.02.2014
Сообщений: 50
01.11.2015, 15:27     Делимость на 3 С++ #3
Если считать, что a(0)=1, то на 3 не делятся члены последовательности с номерами 3k, где k - целое неотрицательное. То есть вычитаем из n единицу, делим на 3 и прибавляем единицу - это сколько членов ряда на 3 не делятся. Вычитаем это из n.
Aymurat
90 / 84 / 25
Регистрация: 07.11.2014
Сообщений: 572
Завершенные тесты: 5
01.11.2015, 15:33     Делимость на 3 С++ #4
Сделай программу, которая находит сумму всех цифр в числе(кажется в while 19, см. задачник Абрамяна), а дальше проверь summacifr%3==0
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
01.11.2015, 16:43     Делимость на 3 С++ #5
Цитата Сообщение от Aymurat Посмотреть сообщение
программу, которая находит сумму всех цифр в числе
И рекурсивно обрабатывать результат пока не получится число <10. Иначе
Цитата Сообщение от Aymurat Посмотреть сообщение
проверь summacifr%3==0
можно вообще с самого начала это сделать.
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
01.11.2015, 17:00     Делимость на 3 С++ #6
из этого всего пройдет только 3 решение
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
01.11.2015, 20:11  [ТС]     Делимость на 3 С++ #7
А можете подсказать как это будет выглядеть кодом? Хотя бы центральную часть, я не совсем понимаю как построить алгоритм, чтобы он был легким и правильно работал.
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
01.11.2015, 20:35     Делимость на 3 С++ #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <bits/stdc++.h>
using namespace std;
long long  n,k=2;
int main() {
    cin >> n;
    if (n == 1) {
        cout << 0;return 0;
    }
    k = n / 3 * 2;
    if (n % 3 == 2)k++;
    cout << k;
    cin.get(), cin.get();
    return 0;
}
EdHaker
1 / 1 / 0
Регистрация: 23.09.2015
Сообщений: 97
01.11.2015, 20:53  [ТС]     Делимость на 3 С++ #9
Dimension, Спасибо, а можете объяснить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2015, 00:15     Делимость на 3 С++
Еще ссылки по теме:

C++ Проверить делимость трехзначного числа на 3
C++ Проверить делимость нацело
Найти целое число по его известным характеристикам (делимость, сумма цифр) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
02.11.2015, 00:15     Делимость на 3 С++ #10
если взять первый три суммы: 1,3,6 , то две из них делятся на 3 ,следовательно ,сумм ,которые делятся на три в два раза больше .сумм ,которые не делятся на три n/3 ,значит ,сумм которые делятся на три n/3*2. рассмотрим случай ,когда формула не будет работать правильно ,это последовательность :1,3,6,10,15 ,по формуле ответ =2 ,а на самом деле сумм 3 ,добавим единицу к ответу в этом случае
Yandex
Объявления
02.11.2015, 00:15     Делимость на 3 С++
Ответ Создать тему
Опции темы

Текущее время: 15:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru