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

Угадай число - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Частица движется случайно. http://www.cyberforum.ru/cpp/thread61260.html
1.Определить есть ли среди первых трех цифр из дробной части заданного положительного вещественного числа цифра 0 помоги плиииз.... такая тема в паскале уже есть...но нужно в си/++ решить....если можно то и таблицу тоже..... Добавлено через 22 минуты 2. частица движеться случайным образом согласно следующим условиям: в момент времени t=0 частица находиться, x=0, y=0. В момент...
C++ Две задачи. Задача1. Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным строкам массива по индексам, конртоль выхода за пределы массива выполнения операций поэлементного сцепления двух массивов с боразованием нового массива, слияния двух массивов с исключением повторяющихся элементов вывод га экран элемента массива по... http://www.cyberforum.ru/cpp/thread61049.html
Работа с файлами (до делать програмку) C++
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <iostream.h> #define MAX 100 struct chit { char fio ; char adres ; char telefon ; int godRojd ;
C++ screenmate: SetWindowRgn - не всегда меняет форму окна
Решил разобраться с устройством Скринмейтов (программок бегающих по экрану:)). Долго мучился с разрезанием картинки и т.д. (С++ знаю не очень...), но тем не менее добился кое-каких результатов. Скринмейтом полученное творение назвать нельзя, т.к. форма окна и картинка меняется по нажатию клавишь ВВЕРХ, ВНИЗ, выход на Escape. Ну естественно анимации нет. Картинку выдрал из другого скринмейта:) ...
C++ Быки и коровы http://www.cyberforum.ru/cpp/thread60712.html
Доброе время суток. Пользователь загадывает число из 4 цифр, каждая из которых от 1 до 6, причем все цифры различны. Разработать алгоритм, который угадывает число по следующим правилам: выводится число и пользователь сообщает, сколько в нем "быков" и "коров", т.е. сколько цифр стоят на своих местах и сколько цифр содержатся в обоих числах, но совпадают лишь по значению. Например, пусть загадано...
C++ Вопрос о типах данных С++ Всем привет! У меня путаница вышла со всем этим разнообразием типов данных в С++. Вообще, тип long double должен занимать 3 машинных слова (или 12 байт). Но вот когда я пишу : #include <iostream.h> #include <cstddef> void main() { long double qq=10; size_t qwer=sizeof qq; cout <<qwer <<endl; подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.11.2009, 17:16     Угадай число
odip,
В общем еще раз подумав (уже на трезвую голову), я пришел к выводу что предложенный Вами алгоритм как имеет положительные стороны, так и отрицательные.
Положительные: правильно - для более оптимального поиска загаданного числа нужно найти все простые множители этого числа и их количество.
Отрицательное состоит в том что при такой проверке:
Как только получили ответ что делится на простое число, то начинаем задавать вопросы уже другие.
Делится ли на 5*2, 5*3, 5*5, 5*7, ...
Так как проверять деление на 2 и на 3 уже нет смысла, то следующий вопрос будет:
Делится ли на 5*5, 5*7, 5*11, ...
получится что мы найденное число (а оно может быть и не маленькое) будем умножать на простые числа под верхней границой заданного диапазона (а оно может тоже не маленьким). В этом случае мы превышаем максимальное значение для int, то есть на экране могут отражаться "левые" числа.
Так вот я взял только положительное от Вами предложенного алгоритма и вот результат:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<iostream>
#include<windows.h>
#include<math.h>
using namespace std; 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
        int i, N, temp, temp1=1, del, mas_pr[3450], i_prost=0;
        bool *bArray, fl;
        cout<<"Ââåäèòå Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îå ÷èñëî N(Г*ГҐ áîëåå 32767): "<<endl;
        cin>>N;
    N++;
    bArray = new bool [N];
    memset(bArray, 1, N); 
    for(i = 2; i < N; ++i)
        if(bArray[i])
        for(int j = i*i; j < N; j += i)
             bArray[j] = false;
    for(i = 2; i < N; ++i)
        if(bArray[i])
                {
             cout<<"Äåëèòñÿ ëè Г§Г*äóìГ*Г*Г*îå ÷èñëî Г*Г* "<<i<< ".Åñëè äåëèòñÿ Г*Г*æìèòå 1, åñëè Г*ГҐГІ ГІГ® Г*Г*æìèòå 0"<<endl;
                         cin>>del;
                         if(del==1)
                         {
                                 mas_pr[i_prost]=i;
                                 i_prost++;
                         }
                }
        for(i=0; i<i_prost; i++)
           temp1*=mas_pr[i];
        for(i=0; i<i_prost; i++)
        {
            fl=false;
            temp=mas_pr[i];
            while(!fl)   
            {
                temp=pow(temp,2);
                cout<<"Äåëèòñÿ ëè Г§Г*äóìГ*Г*Г*îå ÷èñëî Г*Г* "<<temp<< ".Åñëè äåëèòñÿ Г*Г*æìèòå 1, åñëè Г*ГҐГІ ГІГ® Г*Г*æìèòå 0"<<endl;
                cin>>del;
                         if(del==1)
                                temp1*=pow(temp, 0.5);
                         else
                                 fl=true;
            }
        }
        cout<<"Г‡Г*äóìГ*Г*Г*îå ÷èñëî: "<<temp1<<endl;
        system("pause");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru