С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/75: Рейтинг темы: голосов - 75, средняя оценка - 4.68
2 / 2 / 0
Регистрация: 03.05.2018
Сообщений: 101
1

Из заданного целого числа удалить цифры 3 и 6 и вывести обратно на экран

03.05.2018, 16:26. Показов 13495. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Помогите ,пожалуйста, разобраться с задачей / След условие : Пользователь вводит любое целое число. Необходимо из этого целого числа удалить цифры 3 и 6 и вывести обратно на экран. Я решил эту задачу, но очень коряво , помогите найти нормальное решение . Заранее спасибо ...

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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
using namespace std;
 
int main() {
int a1,a2,a3,a4,a0,a_1;
    int result;
    cout<<"Num = "<<endl;
    cin>>num;
    a= num;
    
    while(a!=0){
        a=a/10; //Узнаем сколько цифр в веденном числе
        counter++;
       
        
        //Мои попытки решить задачу по-разному, вот одна неудачная 
       /* if (a/10000 %10!=3 && a/10000 %10!=6 && a/10000 %10!=0) {
            result = a;
            cout<<result;
           continue;
            
        }
         if (a/1000 %10!=3 && a/1000 %10!=6 && a/1000 %10!=0) {
            result = a;
            cout<<result;
           continue;
            
        }
         if (a/100 %10!=3 && a/100 %10!=6 && a/100 %10!=0){
            result = a;
            cout<<result;
           continue;
            
        }
         if (a/10 %10!=3 && a/10 %10!=6 && a/10 %10!=0) {
            result = a;
            cout<<result;
            continue;
            
        }
        else if (a%10!=3 && a %10!=6 && a%10!=0) {
            result = a;
            cout<<result;
           continue;
            
        }
    */
 
//Вот мое корявое решение 
 
        if (counter==6) { //Если 6 цифр ,то
            a_1=num/100000;
            a0=(num/10000)%10;
            a1=(num/1000)%10;  //разделим число на цифры
            a2=(num/100)%10;
            a3=(num/10)%10;
            a4=(num%10);
            if (a_1!=3 && a_1!=6) cout<<a_1;
            if (a0!=3 && a0!=6) cout<<a0;
            if (a1!=3 && a1!=6) cout<<a1;  //выведем эти числа
            if (a2!=3&&a2!=6) cout<<a2;
            if (a3!=3&&a3!=6) cout<<a3;
            if (a4!=3&&a4!=6) cout<<a4;
        }
        
        if (counter==5) { //Если 5 цифр ,то
            a0=num/10000;
            a1=(num/1000)%10;  //разделим число на цифры
            a2=(num/100)%10;
            a3=(num/10)%10;
            a4=(num%10);
            if (a0!=3 && a0!=6) cout<<a0;
            if (a1!=3 && a1!=6) cout<<a1;  //выведем эти числа
            if (a2!=3&&a2!=6) cout<<a2;
            if (a3!=3&&a3!=6) cout<<a3;
            if (a4!=3&&a4!=6) cout<<a4;
        }
        
       if (counter==4) { //Если 4 цифры ,то
            a1=num/1000;  //разделим число на цифры
            a2=(num/100)%10;
            a3=(num/10)%10;
            a4=(num%10);
            if (a1!=3 && a1!=6) cout<<a1;  //выведем эти числа
            if (a2!=3&&a2!=6) cout<<a2;
            if (a3!=3&&a3!=6) cout<<a3;
            if (a4!=3&&a4!=6) cout<<a4;
       }
           
        if (counter==3) { //Если 3 цифры ,то
                    //разделим число на цифры
               a2=(num/100)%10;
               a3=(num/10)%10;
               a4=(num%10);
                //выведем эти числа
               if (a2!=3&&a2!=6) cout<<a2;
               if (a3!=3&&a3!=6) cout<<a3;
               if (a4!=3&&a4!=6) cout<<a4;
        }
        if (counter==2) { //Если 2 цифры ,то
            //разделим число на цифры
            a3=(num/10)%10;
            a4=(num%10);
            //выведем эти числа
            if (a3!=3&&a3!=6) cout<<a3;
            if (a4!=3&&a4!=6) cout<<a4;
        }
        cout<<endl;
   }
    
 
 
 
 
 
 
 
 
system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2018, 16:26
Ответы с готовыми решениями:

Вывести на экран все нечетные цифры целого положительного числа
Помогите решить задачу пожалуйста&quot; Вывести на экран все нечетные цифры целого положительного числа&quot;

Вывести на экран все трехзначные числа, не превосходящие заданного n, у которых есть одинаковые цифры
Вывести на экран все трехзначные числа, не превосходящие заданного n, у которых есть одинаковые...

Из целого числа удалить все цифры 3 и 6.
Пользователь вводит любое целое число. Необходимо из этого целого числа удалить все цифры 3 и 6 и...

Удалить из записи целого числа цифры 0 и 5
не получается справиться с одной задачей Дано натуральное число n (n&lt;=9999). Выбросить из записи...

10
34 / 34 / 37
Регистрация: 21.06.2012
Сообщений: 152
03.05.2018, 16:37 2
Лучший ответ Сообщение было отмечено steptrainee как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iterator>
#include <algorithm>
#include <string>
 
int main(int argc, char *argv[])
{
   int number;
   std::cin >> number;
   auto s_number = std::to_string(number);
   std::copy_if(s_number.cbegin(),
                     s_number.cend(),
                     std::ostream_iterator<typename decltype(s_number)::value_type>(std::cout),
                     std::bind([](const typename decltype(s_number)::value_type &n) -> bool {
                        return n != '3' && n != '6';
                     }, std::placeholders::_1));
   std::cout << std::endl;
   return 0;
}
1
2 / 2 / 0
Регистрация: 03.05.2018
Сообщений: 101
03.05.2018, 16:39  [ТС] 3
а более простые способы есть ?
0
34 / 34 / 37
Регистрация: 21.06.2012
Сообщений: 152
03.05.2018, 16:40 4
steptrainee, а чем этот сложен? Более того он проще вашего и более производительнее.
0
2 / 2 / 0
Регистрация: 03.05.2018
Сообщений: 101
03.05.2018, 21:05  [ТС] 5
Я извиняюсь за свое любопытство, Вы знаете как решить задачу с помощью циклов for , while ?
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
04.05.2018, 00:43 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    int n, i=0, k=0; 
    cout << "n="; cin >>n;
    string s = to_string(n), s1;
    while (s[i] != '\0')
    {
    if (s[i] !='3'&&s[i] !='6') s1[k++]=s[i];
    i++;
    }
    int m = stoi(s1);    
    cout<<m<<endl; 
system("pause");
return 0;
}
1
844 / 647 / 323
Регистрация: 24.02.2017
Сообщений: 2,288
04.05.2018, 09:31 7
Лучший ответ Сообщение было отмечено steptrainee как решение

Решение

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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
   int n,a=1;
   string s ;
 
   cin>>n;
   while (n>0)
      {
         if ((n%10)%3 !=0 && (n%10)%6 !=0)
          s+=n%10+'0';
          n/=10;
       }
    for( size_t i=0;i<s.length();i++)
       {
          n+=(s[i]-'0')*a;
          a*=10;
       }
   cout<<n<<"\n";
 
   system("pause");
   return 0;
}
Добавлено через 30 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main()
{
   int n,a=1,s=0;
 
   cin>>n;
   while (n>0)
      {
         if ((n%10)+'0'!='3'&& (n%10)%6 !=0)
           {
              s+=(n%10)*a;
              a*=10;
           }
          n/=10;
      }
   n=s ;
   cout<<n<<"\n";
 
   system("pause");
   return 0;
}
2
2 / 2 / 0
Регистрация: 03.05.2018
Сообщений: 101
04.05.2018, 15:26  [ТС] 8
Спасибо всем, я вам очень признателен
0
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
03.06.2018, 22:07 9
steptrainee, здравствуйте! Вот еще один вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
 
    using namespace std;
 
int main() {
    int n;
    string s = "";
    cout << "Enter a number:\n";
    cout << "n = ";
    cin >> n;
    while (n) {
        if (n % 10 != 3 && n % 10 != 6)
            s = (char)(n % 10 + '0') + s;
        n /= 10;
    }
    cout << "Target info: " << atoi(s.c_str()) << "\n";
    system("pause");
    return 0;
}
1
2 / 2 / 0
Регистрация: 03.05.2018
Сообщений: 101
04.06.2018, 19:19  [ТС] 10
Спасибо
0
0 / 0 / 0
Регистрация: 25.04.2021
Сообщений: 4
25.04.2021, 15:22 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
using namespace std;
int main() {
    setlocale(LC_ALL, "Rus");
    int a, res;
    double sum = 0;
    int k = 0;
    cout << "Введите любое целое число: ";
    cin >> a;
    while (a != 0) {
        res = a % 10;
        if (res != 3 && res != 6) {
            sum += res * pow(10, k);
            k++;
        }
        a /= 10;
    }
    cout << "Число без 3 и 6: " << sum;
}
0
25.04.2021, 15:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2021, 15:22
Помогаю со студенческими работами здесь

Разбить цифры заданного целого числа на группы согласно условию
Дано целое число N Надо разбить составные этого числа на группы, причем если одно число делится на...

Функция, переставляющая цифры заданного целого числа в обратном порядке
Составить и проверить функцию которая переставляет цифры заданного целого числа в обратном порядке...

Циклы: из целого числа удалить все цифры 3 и 6
Задание 3: Пользователь вводит любое целое число. Необходимо из этого целого числа удалить все...

Определить, есть ли среди цифр заданного n - значного целого числа одинаковые цифры
Определить, есть ли среди цифр заданного n - значного целого числа одинаковые цифры .


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru