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

Проверить, является ли вводимое число степенью числа 3 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
09.07.2012, 00:17     Проверить, является ли вводимое число степенью числа 3 #1
Помогите, в 22 строке выводит ошибку: "Требуется while".
Программа должна проверять вводимое число является ли оно степень числа 3

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Степень числа _3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,k,i;
    
    cout<<"Wwedite chislo: ";
    cin>>n;
 
     k=1; i=0;
   while (k<=n) do
   {
    if(3*k==n) i=1;
     k=k*3;
   }
 
   if(i==1) cin>>"True";
   else cin>>"False";
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2012, 00:17     Проверить, является ли вводимое число степенью числа 3
Посмотрите здесь:

C++ Является ли число степенью другого числа
C++ В целочисленном массиве найти и напечатать те элементы, которые являются степенью 2. Написать функцию, проверяющую, является ли число степенью 2.
Помогите, ГОС экзамен! Является ли число степенью другого числа C++
C++ Определить, является ли натуральное число k степенью числа
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
09.07.2012, 00:31     Проверить, является ли вводимое число степенью числа 3 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
   int n, a;
   while (n%3) 
   {
if(a){
cout<<"Specify the number: ";
}
else{
cout<<"Be cearfull! Next try: ";
}
cin>>n;
cout<<"\n";
a=1;   
   }
cout<<"The number has been being entered : "<<n;
system"pause";
 return 0;
}
Flexoid1
5 / 5 / 0
Регистрация: 08.07.2012
Сообщений: 20
09.07.2012, 00:37     Проверить, является ли вводимое число степенью числа 3 #3
Я бы сделал вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using std::cin;
using std::endl;
using std::cout;
 
int check ( int );
 
int main()
{
    int number;
    cin >>number;
    if ( check(number) == 1 ) {
        cout<<"Yes";
    }
    else {
        cout<<"No";
    }
}
 
int check ( int number )
{
    int x=1,flag=0;
    do {
        x*=3;
        if ( x > number ) {
            break;
        }
        if ( x == number ) {
            return 1;
            flag=1;
        }
    } while ( flag != 1 );
    return -1;
}
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
09.07.2012, 00:44     Проверить, является ли вводимое число степенью числа 3 #4
Цитата Сообщение от Flexoid1 Посмотреть сообщение
Я бы сделал вот так:
Так функцию, бы в цикле вызвать. И что бы возвращала const *char... В файл.)

Не по теме:

зы using std::endl; нигде не пригодился.

Flexoid1
5 / 5 / 0
Регистрация: 08.07.2012
Сообщений: 20
09.07.2012, 00:46     Проверить, является ли вводимое число степенью числа 3 #5
Цитата Сообщение от IGPIGP Посмотреть сообщение
Так функцию, бы в цикле вызвать. И что бы возвращала const *char... В файл.)
Можно... Но зачем функцию в цикле вызывать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using std::cin;
using std::cout;
 
char check ( int );
 
int main()
{
    int number;
    cin >>number;
    cout<<check(number);
}
 
char check ( int number )
{
    int x=1,flag=0;
    do {
        x*=3;
        if ( x > number ) {
            break;
        }
        if ( x == number ) {
            return 'Y';
            flag=1;
        }
    } while ( flag != 1 );
    return 'N';
}
MasterRO
37 / 5 / 3
Регистрация: 15.09.2011
Сообщений: 73
09.07.2012, 01:47  [ТС]     Проверить, является ли вводимое число степенью числа 3 #6
Чето я вообще ничего не понимаю, а нельзя перевести мою прогу с Паскаля:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses crt;
var
 k,n:integer;
 f:boolean;
Begin
 writeln('Ââåäèòå ÷èñëî: ');
 readln(n);
  k:=1; f:=false;
 while k<=n do
  begin
   if 3*k=n then f:=true;
    k:=k*3;
  end;
 writeln(f);
end.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
09.07.2012, 02:09     Проверить, является ли вводимое число степенью числа 3 #7
Цитата Сообщение от IGPIGP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
   int n, a;
   while (n%3) 
   {
if(a){
cout<<"Specify the number: ";
}
else{
cout<<"Be cearfull! Next try: ";
}
cin>>n;
cout<<"\n";
a=1;   
   }
cout<<"The number has been being entered : "<<n;
system"pause";
 return 0;
}
Вот тут неправильно:
C++
1
int n, a;
забыл что n инициализировать нулем нельзя в этом случае. То есть лучше, например так:
C++
1
2
int n=1;
int a=0;
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
09.07.2012, 08:45     Проверить, является ли вводимое число степенью числа 3 #8
Цитата Сообщение от IGPIGP Посмотреть сообщение
Вот тут неправильно:
А в отсальном правильно? Не всякое число, которое без остатка делится на 3, явдяется степенью числа 3.
6, 12, 15 и т.д.

Добавлено через 9 минут
MasterRO, код, вообще-то, почти рабочий. do убрать, и вместо cin, в 22 и 23 , написать cout.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Степень числа _3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,k,i;
    
    cout<<"Wwedite chislo: ";
    cin>>n;
 
     k=1; i=0;
   while (k<=n)
   {
    if(3*k==n) i=1;
     k=k*3;
   }
 
   if(i==1) cout<<"True";
   else cout<<"False";
 
    return 0;
}
Catstail
Модератор
 Аватар для Catstail
21430 / 10215 / 1664
Регистрация: 12.02.2012
Сообщений: 17,087
09.07.2012, 08:48     Проверить, является ли вводимое число степенью числа 3 #9
Автор вопроса просил указать ошибки. Указываю:

C++
1
2
3
4
5
6
7
8
do
   {
    if(3*k==n) i=1;
     k=k*3;
   } while (k<=n);  // условие из заголовка перенесено в конец. ";" - обязательна!
 
   if(i==1) cout << "True";  // cin вместо cout и галки стояли "не в ту сторону"
   else cout << "False";
А в остальном - все ок! Работает...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2012, 14:37     Проверить, является ли вводимое число степенью числа 3
Еще ссылки по теме:

C++ Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени
C++ Определить, является ли натуральное число степенью другого числа
Фунция, проверяющая, является ли число степенью числа 5 C++

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

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6159 / 2888 / 282
Регистрация: 04.12.2011
Сообщений: 7,686
Записей в блоге: 3
09.07.2012, 14:37     Проверить, является ли вводимое число степенью числа 3 #10
Цитата Сообщение от alsav22 Посмотреть сообщение
степенью числа 3
Ого! Это я неправ! Простите.
Yandex
Объявления
09.07.2012, 14:37     Проверить, является ли вводимое число степенью числа 3
Ответ Создать тему
Опции темы

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