C/C++

Помогите с Заданием по программированию c++

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

Примечание: При написании программы использовать разбиение целого числа на цифры с помощью операций / и %.

Исходные данные: цифра m, целое число N.

Данные, выводимые на экран: сообщение «Цифра входит в запись числа» или «Цифра НЕ входит в запись числа».
#include "iostream"
int main(){
long m,n; std::cout<<"m N: "; std::cin>>m>>n; if(n<0)n=-n; bool b=false;
do if(n%10==m)b=true; while(n/=10); std::cout<<(b?"Yes!\n":"No!\n");}

Сообщения замени на свои.
P.S. Подправил, чтобы годилось и для отрицательных чисел.
Руслан Имамвердиев
Руслан Имамвердиев
64 110
Лучший ответ
А у меня так (для неотрицательных восьмибайтных целых чисел и с поддерживаемой кириллицей):
#include <iostream>
using namespace std; int main()
{ int digit, l = 1, m; unsigned long long N;
string a = "Цифра входит в запись числа\n",
b = "Цифра НЕ входит в запись числа\n";
cout << "N m: "; cin >> N >> m;
if (N == 0) cout << (m ? b : a); else { while (N)
{ digit = N % 10; if (digit == m) { l = 0; break; }
N /= 10; } cout << (l ? b : a); } }
А для любых восьмибайтных целых чисел, а не только для неотрицательных, будет так:
#include <iostream>
using namespace std;
int main() { int digit, l = 1, m; long long N;
string a = "Цифра входит в запись числа\n",
b = "Цифра НЕ входит в запись числа\n";
cout << "N m: "; cin >> N >> m; if (N < 0) N=-N;
if (N == 0) cout << (m ? b : a); else { while (N)
{ digit = N % 10; if (digit == m) { l = 0; break; }
N /= 10; } cout << (l ? b : a); } }