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

Циклы для распечатки чисел - C++

Восстановить пароль Регистрация
 
keks1434
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 8
26.09.2013, 16:35     Циклы для распечатки чисел #1
Циклы для распечатки чисел.
В диалоговом режиме вводится некоторое число N (В диапазоне от 1 до 2000). Программа должна вывести числа, определенные заданием в виде нескольких колонок, выровненных по правому краю. Все числа от 1 до N натуральные.

1) Распечатать числа в диапазоне от 1 до N, у которых самый большой делитель (не равный числу) есть двухзначное число.
2)Распечатать числа в диапазоне от 1 до N, у которых произведение первой и последней цифры равны числу M.

подскажите код пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 16:35     Циклы для распечатки чисел
Посмотрите здесь:

перегруженые функции для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел C++
C++ Написать шаблоны функций для для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел
Циклы: Найти сумму квадратов чисел от m до n C++
Циклы: Задано натуральное число n. Найти количество натуральных чисел, не превышающих n и не делящихся ни на одно из чисел 2, 3, 5 C++
Задача на циклы! Язык Си++! определить количество разных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
26.09.2013, 17:11     Циклы для распечатки чисел #2
2
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <math.h>
using namespace std;
int n,m,k;
int main()
{
    cout << "Enter number N [1..9999]= ";cin >> n;
    cout << "Enter number M = ";cin >> m;
    cout << "Answer = ";k=0;
    for(int i=1;i<=n;i++)
    {
        if (((i / 1000))!=0) { if (((i/1000)+(i%10))==m) cout << i << " ";k++;} ;
        if (((i / 100))!=0) { if (((i/100)+(i%10))==m) cout << i << " ";k++;} ;
        if (((i / 10))!=0) { if (((i/10)+(i%10))==m) cout << i << " ";k++;} ;
    };
    if (k==0) cout << "0";
    cout << "\n";
    system("pause");
}
keks1434
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 8
26.09.2013, 17:21  [ТС]     Циклы для распечатки чисел #3
что за компилятор у вас?
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
26.09.2013, 17:24     Циклы для распечатки чисел #4
На этот код notepad++
а так то пишу в Microsoft Visual C++ 2010
keks1434
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 8
26.09.2013, 17:27  [ТС]     Циклы для распечатки чисел #5
Цитата Сообщение от newyork7776 Посмотреть сообщение
На этот код notepad++
а так то пишу в Microsoft Visual C++ 2010
мне задачу надо сдать в borland'e а там таких функицци и не читает как мне изменить под древний компилятор задачу?)
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
26.09.2013, 17:30     Циклы для распечатки чисел #6
На таком компил вас устроит?
keks1434
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 8
26.09.2013, 17:34  [ТС]     Циклы для распечатки чисел #7
Цитата Сообщение от newyork7776 Посмотреть сообщение
как раз на него и надо) ток у меня версия 3.1 но это не суть
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
26.09.2013, 17:46     Циклы для распечатки чисел #8
переделаю ждите

Добавлено через 11 минут
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <math.h>
int n,m,k,exit;
int main()
{
    cout << "Enter number N [1..9999]= ";cin >> n;
    cout << "Enter number M = ";cin >> m;
    cout << "Answer = ";k=0;
    for(int i=1;i<=n;i++)
    {
        if (((i / 1000))!=0) { if (((i/1000)+(i%10))==m) cout << i << " ";k++;} ;
        if (((i / 100))!=0) { if (((i/100)+(i%10))==m) cout << i << " ";k++;} ;
        if (((i / 10))!=0) { if (((i/10)+(i%10))==m) cout << i << " ";k++;} ;
    };
    if (k==0) cout << "0";
    cout << "\n";
    cout << "Please enter number to exit ";cin >> exit;
 
}

нормально или нет?
keks1434
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 8
26.09.2013, 17:56  [ТС]     Циклы для распечатки чисел #9
да нормально,включаеться! спасибо! щас разберусь только

Добавлено через 7 минут
В диапазоне от 1 до 2000, а это как будет выглядеть? можно еще коментарий к строке
C++
1
if (((i / 10))!=0) { if (((i/10)+(i%10))==m) cout << i << " ";k++;} ;// коментарий
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
26.09.2013, 18:10     Циклы для распечатки чисел #10
C++
1
if (((i / 10))!=0) { if (((i/10)+(i%10))==m) cout << i << " ";k++;} ;
допустим i=11 m=2
если (((11/10))!=0) { если (((11/10)+(11%10)==2) пишем число 11;k++;}
если (1!=0) {если ((1 + 1) ==2) пишем число 11;k++;}}

Добавлено через 43 секунды
можна сменить цикл старт 11 а не с 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 20:57     Циклы для распечатки чисел
Еще ссылки по теме:

Циклы.Посчитать количество чисел C++
C++ Форматы чисел, циклы | задача
C++ Суммирование чисел от 50 до 100 через циклы for и while.

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

Или воспользуйтесь поиском по форуму:
keks1434
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 8
26.09.2013, 20:57  [ТС]     Циклы для распечатки чисел #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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Распечатать числа в диапазоне от 1 до N, у которых произведение первой и последней цифры равны числу M.
/* подключаем библиотеки */
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main ()
{
    int n = -1, //  конечный диапазон чисел, которые нам нужны
                //  устанавливаем начальное значение -1
                //  это нужно для проверки числа, которое ввел пользователь (оно должно быть в диапазоне от 1 до 2000)
 
        m,      //  произведение первой и последней цифры должно быть равно этому числу
                //  начальное значение нам тут не нужно
 
        i = 10, //  счетчик, чтобы бежать по цифрам, по сути это и есть наши цифры (от 1 до N по условию)
                //  но бежать мы начинаем с 10, так как нам нужно найти числа, произведение первой и последней цифры которого равно m
                //  соответственно нам нужно только двузначные числа
 
        b,      //  буферная переменная, чтобы разбирать число на цифры
                //  на каждом шаге цикла в нее записыватся число i и разбирается по цифрам
                //  i нам терять нельзя
 
        o,      //  сюда будет записываться первая цифра числа i (b)
 
        t,      //  сюда последняя
 
        f = 0;  //  флаг
                //  если вдруг не будет чисел, удовлетворяющих нашему условию, то он останетс равен 0
                //  соответственно можно будет вывести сообщение о том, что таких чисел нет
 
    /*
        n должно быть от 1 до 2000
        требуем, чтобы пользователь ввел именно такое число
    */
    while (n < 1 || n > 2000)
    {
        cout << "n=";
        cin >> n;
    }
 
    /*
        вводим число m
        тут никаких ограничений нет, поэтому можно ввести любое число
    */
    cout << "m=";
    cin >> m;
 
    /*
        бежим по нашим числам
        от 10 до n (N)
    */
    while (i <= n)
    {
        b = i;      //  помещаем наше число в буферную переменную, чтобы не потерять его
        t = b%10;   //  берем последнюю цифру нашего числа и пишем ее в переменную t
 
        /*
            разбираем число на цифры
        */
        while (b)       // пока b не станет равным 0, то есть пока мы его полностью не разберем
        {
            o = b%10;   //  отделяем каждую цифру от нашего числа
                        //  в итоге в конце (после выхода из этого while'а) там будет первая (младшая) цифра нашего числа
            b /= 10;    //  делим число на 10, чтобы перейти к следующему шагу цикла (попасть к следующей цифре)
        }
 
        /*
            проверяем, равно ли произведение первой и последней цифры числа введенному числу m
            если такое число есть, то выводим его и присваиваем переменной f (флаг) значение 1,
            чтобы если подобных чисел нет (флаг тогда останется равным 0) вывести потом сообщение об этом
        */
        if (t*o == m)
        {
            printf("%5d", i);
            f = 1;
        }
 
        i++;    //  переходим к следующему числу
    }
 
    /*
        если f (флаг) так и остался равен 0, значит чисел, удовлетворяющих нашему условю, нет
        поэтому нужно вывести сообщение, уведомляющее об этом
    */
    if (f == 0)
        printf("Таких чисел нет");
 
    return 0;
}
Yandex
Объявления
26.09.2013, 20:57     Циклы для распечатки чисел
Ответ Создать тему
Опции темы

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