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

как проверить цифру, на то что она является степенью тройки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка C2106. http://www.cyberforum.ru/cpp-beginners/thread354333.html
Здравствуйте, при попытке символьному элементу структуры (char name ) присвоить такой же символьный элемент выдается ошибка C2106 - левый операнд должен быть левосторонним значением. Вот фрагмент листинга, на всякий случай с описанием самой структуры: .......... struct List { int shifr; char name ; int kol; float stoim; }; List MasList ,min; ..........
C++ Поблочное чтение из файла Здравствуйте, балуюсь с чтением из файла. Так вот если читать посимвольно всё в порядке, но больно долго. А если хитро "буферизированно" читать методом ifstream::read() то быстро но... проблемма... некоторый кусок из конца не читается... Вот даже #include <iostream> #include <fstream> using namespace std; #define filename "file.txt" http://www.cyberforum.ru/cpp-beginners/thread354331.html
Паттерны C++
Паттерн Flyweight Паттерн Domain Model (Модель области определения).Кто знает что это.И может на сайте есть коды хоть примерно этого.
C++ Оцените код
Суть задания: дана непрямоугольная матрица(в каждой строке разное кол-во элементов). Необходимо вывести в другую строку число уникальных элементов. Например вводим: 1 2 3 1 1 1 2 1 3 3 2 3 Получаем: 3 2 3. Если будет не трудно, подскажите, почему если вводить в строку только одинаковые эл-ты прога выдаст неверный результат. Ну и конечно же буду благодарен за все замечания по коду # include...
C++ Составить программы вычисления значений суммы и произведений ряда http://www.cyberforum.ru/cpp-beginners/thread354306.html
Помогите кто нибудь. (0.5*n!)/(0/1*n+1) надо Составить программу вычисления значений суммы и произведений ряда там перед формулой П большая. над ней m под ней n-2
C++ вопрос по среде программирования dev-cpp Объясните пожалуйста чем в среде программирования %lf отличается от ну например %i. К примеру в такой задачке "Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в конце. Найти полученное число." #include <cstdlib> #include <math.h> #include <stdio.h> using namespace std; int main(void) { int x,y,a,b,c; подробнее

Показать сообщение отдельно
BoBaH26
30 / 30 / 0
Регистрация: 02.12.2010
Сообщений: 255
21.09.2011, 11:09     как проверить цифру, на то что она является степенью тройки
talis, с рекурсивными алгоритмами знаком, но фактически делал только на Паскале. На С++ еще не доводилось, надо будет заняться..
Paporotnik, способ хороший, но опять же, можно нулевую степень вынести в отдельный условный алгоритм, а в else записать сам цикл
C++
1
while (!(m%3))
Причем не заставлять программу постоянно делить число m на 3, а сразу, если при исходном числе условие выполняется, выдать блок:
C++
1
2
{cout<<"ok";
 break;} // Чтобы не зацикливаться.
Тогда Ваш вариант будет, наверно, лучшим.

Добавлено через 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Pr.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "iostream"
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
        int m,a;
        cout<<"Vvedite osnovanie: \n"; //Чтобы сделать универсальную программу,
        cin>>a;                        //если надо не 3, а например, 7, то вводим 7.
    cout<<"Vvedite chislo:\n";
        cin>>m;
    if (m==1) cout<<"ok"<<endl; else
             if ((m<=0)||(m%a)) cout<<"not ok"<<endl; else
         cout<<"ok"<<endl;
    _getch();
    return 0;
}
Согласитесь, самый рациональный вариант из всех предложенных, причем идеи взяты из всех 3 способов.

Добавлено через 14 минут
Кстати, можно сделать данный вариант в виде функции, например, kratnost (int x, int y), где x - основание, а y - само число, т.е. проверяем, является ли y степенью x. Можно сохранить функцию и пользоватся ей при необходимости, просто подключая ее.
 
Текущее время: 18:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru