Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
-4 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41

While-цикл с условием.

14.04.2012, 20:50. Показов 1539. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не является-вывести FALSE.

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
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <math.h>
 
int main()
{
    setlocale(0,"Russian");
    int N,i;
    i=1;
    printf("Введите целое число:\n");
    scanf("%d",&N);
    while((N!=0)&&i)
    {
        if(N%3!=0)
            i=0;
        N/=3;
    }
    if(i)
            printf("истинно('TRUE')\n");
        else 
            printf("ложно('FALSE')\n");
    getch();
    return 0;
}
Так надо было решать???
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.04.2012, 20:50
Ответы с готовыми решениями:

Цикл с параметром и цикл с условием
1. Составить программу вычисления суммы первых 10 непарных чисел 2. Дано числовой ряд и некоторое число &quot;епсила&quot;....

цикл с условием
дано число N (&gt;1). Вывести наиболее из целых чисел к, ДЛЯ КОТОРЫХ СУММА 1+1/2+...+1/К будет больше А, и саму эту сумму.

Цикл ввода с условием
Добрый вечер. У меня есть вопрос касательно кода. Как его зациклить? Я имею ввиду, чтобы на шаге &quot;Oshibka&quot; возвращало снова к...

9
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.04.2012, 20:55
Цитата Сообщение от E92 Посмотреть сообщение
Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не является-вывести FALSE.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main()
{
    unsigned int N;
    unsigned int p;
    while(true)
    {
        cout<<"Enter N : ";cin>>N;
        cout<<"N is power of 3 : ";
        p = N % 3;
        while(1 < (N /= 3) && p == 0)
            p = N % 3;
        if(p)
            cout<<"FALSE\n";
        else
            cout<<"TRUE\n";
    }
    return 0;
}
Миниатюры
While-цикл с условием.  
1
-4 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
14.04.2012, 20:57  [ТС]
Спасибо.))) А нельзя это на СИ написать?)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.04.2012, 21:04
E92,
Цитата Сообщение от E92 Посмотреть сообщение
Спасибо.))) А нельзя это на СИ написать?)
- да не вопрос, обрати внимание я код поправил действительно однократная проверка N % 3 не даёт вопрос на то просто ли число кратно трём либо всё же єто степень, для точного ответа нужен пробор в цикле
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(1 < (N /= 3) && p == 0)
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.04.2012, 21:05
Добавлено через 2 минуты
Ниже Си реализация, функционал тот же
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main()
{
    unsigned int N;
    unsigned int p;
    while(1)
    {
        printf("Enter N : ");
        scanf("%d",&N);
        printf("N is power of 3 : ");
        p = N % 3;
        while(1 < (N /= 3) && p == 0)
            p = N % 3;
        if(p)
            printf("FALSE\n");
        else
            printf("TRUE\n");
    }
    return 0;
}
Миниатюры
While-цикл с условием.  
0
-4 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
14.04.2012, 21:05  [ТС]
Спасибо!!!!!))))
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.04.2012, 21:09
И ещё один момент - этот цикл
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
while(true)
* * {
служит лишь для организации многократного ввода и к самому алгоритму отношения не имеет(я подумал что всё же проще вводить многократно, чем каждый раз смыкать на запуск приложение). Т.е если хотим лишь 1-кратную отработку, то код преобразуем в такой
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main()
{
    unsigned int N;
    unsigned int p;
    printf("Enter N : ");
    scanf("%d",&N);
    printf("N is power of 3 : ");
    p = N % 3;
    while(1 < (N /= 3) && p == 0)
        p = N % 3;
    if(p)
        printf("FALSE\n");
    else
        printf("TRUE\n");
    getchar();
    printf("Enter any key to continue\n");
    getchar();
    return 0;
}
Отработка
Enter N : 81
N is power of 3 : TRUE
Enter any key to continue
1
-4 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
14.04.2012, 21:47  [ТС]
Спасибо большое!!!!) Вы очень помогли!!!!!))))

Добавлено через 35 минут
А вы не могли бы объяснить эту строчку: 1 < (N /= 3) && p == 0)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
14.04.2012, 22:35
Цитата Сообщение от E92 Посмотреть сообщение
1 < (N /= 3) && p == 0)
это два условия
1-е условие (N /= 3) - крутимся в цикле пока N больше единицы при этом мы ещё и делим N на 3 при каждой итерации. N /= 3 означает следующее N = N/3
2-е условие p == 0 мы будем крутиться в цикле также пока остаток от целочисленного деления N % 3 равен нулю.
При этом если число не степень 3-ки то из цикла выйдем ранее чем N/3 станет равным единице, если же N было степенью тройки то у нас всё время p == 0 и цикл окончим уже по условию
1 < (N /= 3)
В общем получается нам нужно контролировать как величину числа так и остаток от целочисденного деления, вот поэтому условий 2
1
-4 / 1 / 0
Регистрация: 01.04.2012
Сообщений: 41
15.04.2012, 07:32  [ТС]
Спасибо!!! Теперь всё понятно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.04.2012, 07:32
Помогаю со студенческими работами здесь

Вывод на экран двусвязного списка, цикл с условием
Если вывожу двусвязный список на экран циклом for, все нормально. Если циклом while - после вывода последнего элемента вылетает...

Цикл с условием окончания, исследование ряда на сходимость
Задание исследовать ряд на сходимость. Срочно нужен код Си и желательно с комментариями.

Гамильтонов цикл в графе с выполненным условием Дирака
:Задача 1 . SMS счастья Имя входного файла: input.txt Имя выходного файла: output.txt Ограничение по времени: 2 секунды на...

Почему цикл с условием EOF читает последний символ 2 раза?
Данная программа читает двоичную строку и выводит длину самой продолжительной цепочки нулей. Почему мой цикл читает 2 раза последнее...

дано целое число N>0 . используя один цикл (с пред- и пост- условием) найти сумму 1!+2!+.+n!
дано целое число N&gt;0 . используя один цикл (с пред- и пост- условием) найти сумму 1!+2!+...+n!


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru