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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
#1

Найти все четырёхзначные числа - C++

09.02.2010, 13:27. Просмотров 944. Ответов 11
Метки нет (Все метки)

Всем привет, объясните мне пожалуйста задачу, она заключается в том, что бы найти все четырёхцыфровые числа, в записи которых не больше двоих одинаковых цыфр. Вот её код:
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
using namespace std;
 
#include <iostream>
#include <fstream>
 
int main ()
{
int *mas1=new int[4], *mas2=new int[10], a=0, b=0, c=0;
ofstream on;
on.open("numbers.txt");
for (int i=1000; i<=9999; i++)
{
a=i;
mas1[3]=a%10;
a/=10;
mas1[2]=a%10;
a/=10;
mas1[1]=a%10;
mas1[0]=a/10;
b=0;
for (int u=0; u<10; u++)
{mas2[u]=0;}
for (int j=0; j<4; j++)
{
mas2[mas1[j]]++;
}
for (int j=0; j<10; j++)
{
if (mas2[j]>2)
b++;
}
if (b==0)
{
c++;
on<<i<<endl;
}
}
on<<endl<<"Takih chisel: "<<c<<endl;
cout<<"Takih chisel: "<<c<<endl;
 
delete mas1, mas2;
system ("Pause");
return 0;
}
Объясните мне его пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2010, 13:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти все четырёхзначные числа (C++):

Найти все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27 - C++
найти все четырёхзначные числа , у которых сумма крайних цифр равна сумме средних цифр , а само число делится на 6 и 27 . В С++

Вывести все четырёхзначные числа, сумма чисел которых равна заданному числу - C++
#include &lt;iostream&gt; using namespace std; int main(){ int N, i, j; cout&lt;&lt;&quot;Vvedite nujnoe chislo \n&quot;; cin&gt;&gt;N; ...

Найти все трехзначные числа, в которых все цифры различны. - C++
Помогите, пожалуйста, решить задачу в С++. Найти все трехзначные числа, удовлетворяющие условию: все цифры различны.

Найти все четырехзначные числа, у которых все цифры различны - C++
Найти все четырехзначные числа, у которых все цифры различны.

Найти все четырехзначные числа, у которых все цифры различны - C++
4)Найти все четырехзначные числа, у которых все цифры различны.

Составьте программу, позволяющую найти все числа Фибоначчи, меньшие заданного числа N - C++
Помогите, пожалуйста. Вот сама задача: Пара кроликов каждый месяц дает приплод – двух кроликов (самца и самку), от которых через два...

11
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.02.2010, 13:32 #2
Что конкретно тебе непонятно?
0
Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
09.02.2010, 13:33  [ТС] #3
Цитата Сообщение от Shevva Посмотреть сообщение
ofstream on; on.open("numbers.txt");
Цитата Сообщение от Shevva Посмотреть сообщение
a/=10;
чёт типа такого
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.02.2010, 13:39 #4
Цитата Сообщение от Shevva Посмотреть сообщение
Цитата:Сообщение от Shevva
ofstream on; on.open("numbers.txt");
Объявляется файловый поток вывода. Вывод производится в файл numbers.txt


Цитата Сообщение от Shevva Посмотреть сообщение
Цитата:Сообщение от Shevva
a/=10;
Эта запись эквивалентна a=a/10

Вообще код какой-то корявый. Непонятно, зачем делать динамические массивы, зачем нужен второй массив и т.д.
0
Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
09.02.2010, 13:47  [ТС] #5
а как ты бы посоветовал?
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.02.2010, 14:09 #6
Можно отсортировать массив mas1 по возрастанию и сравнивать рядом стоящие цифры.
Что-то типа того (уже после сортировки массива):
C++
1
2
3
4
5
6
7
8
9
10
11
12
int s=1;
int k=0;
while(k<4)
{
    if(mas1[l]==mas1[k+1])
        s++;
    i++;
}
if(s>2)
    //Код если встретилось число, в котором больше двух одинаковых цифр
else
    //В противном случае
Добавлено через 12 минут
Кстати, по вопрос по постановке задачи: число 1122, к примеру, считается числом, в котором более двух одинаковых цифр?
0
Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
09.02.2010, 14:11  [ТС] #7
нет, не считается
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.02.2010, 14:13 #8
То есть нужно найти все числа, в которых любая цифра повторяется не более двух раз?
Тогда немножко по-другому:
C++
1
2
3
4
if((mas1[0]==mas1[1]==mas1[2])||(mas1[1]==mas1[2]==mas1[3]))
    //встретилось число, в котором больше двух одинаковых цифр
else
    //не встретилось
1
Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
09.02.2010, 14:15  [ТС] #9
да, ты правильно понял
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.02.2010, 14:22 #10
Напоминаю, массив уже отсортирован
0
Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
09.02.2010, 14:25  [ТС] #11
ну да, отсортирован
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
09.02.2010, 14:39 #12
Решение смотрим моим постом №8 выше
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 14:39
Привет! Вот еще темы с ответами:

Найти все натуральные числа, меньшие заданного числа и взаимно простые с ним - C++
Дано натуральное число n. Необходимо получить все натуральные числа, меньшие nn и взаимно простые с ним (два натуральных числа называются...

Даны числа a и b. Необходимо найти все числа, являющиеся полными квадратами, на отрезке [a;b] - C++
Даны числа a и b. Необходимо найти все числа, являющиеся полными квадратами, на отрезке . Формат входных данных Вводится два...

Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9 - C++
Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9. Знаю что должно вывести 18, 45, 90,...

Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7, 8, 9 - C++
Вроде код правильный наклепала. А вывода никакого нет. В чем ошибка? #include &lt;vcl.h&gt; #include &lt;iostream.h&gt; #include &lt;math.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
09.02.2010, 14:39
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru