Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2012, 20:26   #1
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию Задача про числа

Написать программу, которая определяет, можно ли натуральное число N ввести с помощью только 3 цифр? Если таких цифр не хватает, то программа должна определить, сколько ещё цифр нужно использовать, чтобы ввести число N.

Сначала вводится число N. После этого вводятся цифры X,Y,Z.

Если число N можно ввести только с помощью цифр X,Y,Z, то вывести 0. Если цифр не хватает, то вывести число - количество цифр, которое ещё нужно использовать, чтобы ввести число N.


Помогите, пожалуйста, решить.
makskovalko вне форума Ответить с цитированием
Старый 16.12.2012, 20:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int n=то самое число
for(;n>0;n/=10){
 int k=n%10;
 if(k!=x && k!=y && k!=z) break;
}
if(n) printf("Неа"); else printf("Можно");
Подходит?
Капец... Ну и зачем кросспостить?
Код:
while n>0 do begin
 k=n mod 10;
 if (k<>x)and(k<>y)and(k<>z) then break;
end;
if(n=0) then write('Неа') else write('ага');
I'm learning to live...

Последний раз редактировалось Stilet; 16.12.2012 в 20:58.
Stilet вне форума Ответить с цитированием
Старый 16.12.2012, 22:36   #3
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию

Это неправильное решение.
makskovalko вне форума Ответить с цитированием
Старый 16.12.2012, 22:46   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
ReadLn (s);
if Length(s)>3 then
    WriteLn (Length(s)-3)
else
    if (Pos (z, s) <> 0) and (Pos (x, s) <> 0) and (Pos(y,s) <> 0) then
        WriteLn ('Yes')
Не проверял..
Poma][a вне форума Ответить с цитированием
Старый 16.12.2012, 23:05   #5
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

makskovalko

можно ли натуральное число N ввести с помощью только 3 цифр?

Код:
std::set<int> u;
int i;
std::cin >> i;
int x,y,z;
std::cin >> x>> y >> z;

for (; i; i /= 10)
u.insert(i % 10);

u.erase(x);
u.erase(y);
u.erase(z);

if (u.size() == 0)
   std::cout << "Фсе засибись, насяльника!" << std::endl;
else
  std::cout << "Сифра не хватать, насяльника!" << std::endl;
Не проверял..

same shit
Rififi вне форума Ответить с цитированием
Старый 16.12.2012, 23:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это неправильное решение.
Как определил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.12.2012, 23:28   #7
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию

Например, когда вводишь число 12398, а потом цифры 8, 1, 3, то должна выводиться 2, а когда вводишь 1121124, то должен выводиться 0.
makskovalko вне форума Ответить с цитированием
Старый 16.12.2012, 23:29   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Правильное решение:

Код:
@ echo off
setlocal enabledelayedexpansion

:: Вводим исходные данные
set /p n=N = 
set /p x=X = 
set /p y=Y = 
set /p z=Z = 

:: Инициализирцем массив цифр нулями
for /l %%i in (0,1,9) do set digit[%%i]=0

:: Считаем все цифры числа n
set cnt=0
:while
set /a d=n%%10, n/=10
if !digit[%d%]! equ 0 if %d% neq %x% if %d% neq %y% if %d% neq %z% set /a cnt+=1
set /a digit[%d%]+=1
if %n% gtr 0 goto while

:: Выводим ответ
echo %cnt%

pause
В прикрепленном файле уже набранная программа.
Вложения
Тип файла: zip 1.zip (446 байт, 5 просмотров)
Arigato вне форума Ответить с цитированием
Старый 16.12.2012, 23:31   #9
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию

А можно,пожалуйста, на Паскале
makskovalko вне форума Ответить с цитированием
Старый 16.12.2012, 23:32   #10
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Ну так перепишите сами, алгоритм ведь уже дан
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про 3 числа Wladimir33 Паскаль, Turbo Pascal, PascalABC.NET 3 25.06.2011 23:39
задача Delphi про простые числа Crysta Помощь студентам 0 07.12.2010 19:50
[Pascal] Задача про натуральные числа Knife Помощь студентам 1 22.04.2009 02:04
Про числа Акашаев Нурлан Паскаль, Turbo Pascal, PascalABC.NET 6 12.12.2007 07:18