Примеры решения задач
Проверить,
является ли двоичная запись натурального
числа N
палиндромом. N
задано, и не должно превосходить 100.
Палиндром - число, которое имеет одинаковое
чтение слева направо и справа налево.
static
int Main(string[] args)
{
int
numb, kRazr, work;
bool
flag=false;
Console.WriteLine("Введите
натуральное число до 100");
numb=
Convert.ToInt32(Console.ReadLine());
if
(numb>100)
return
0;
//
посчитаем, сколько двоичных разрядов
в числе
work=numb;
kRazr=0;
while
(work>0)
{ work>>=1; kRazr++; }
Console.WriteLine("Двоичных
разрядов
{0}",kRazr);
if
((numb&1)==0)
{ Console.WriteLine("Не
палиндром"); return
0; }
for
(int i=0; i<kRazr/2; i++)
{
//
младший
разряд (numb>>i)&1
//
Старший
разряд
(numb>>(kRazr-i-1))&1
if
(((numb>>i)&1)!=((numb>>(kRazr-i-1))&1))
{ flag=false; break; }
flag=true;
}
if
(flag) Console.WriteLine("Палиндром");
else Console.WriteLine("Не
палиндром");
return
0;
}
Среди
последовательности вводимых натуральных
чисел определить количество чисел
содержащих цифру N. Количество вводимых
чисел заранее не известно.
namespace
ConsoleApplication3
{
class
Class1
{
//
процедура подсчета необходимых цифр
static
int
schet(int
zifra,int
N){
int
k=0;
while
(zifra>10){
//
поиск цифры происходит через проверку
остатка от деления на 10
double
ost=zifra%10;
if
(ost==N)
{
k=k+1;
break;
}
zifra=zifra/10;
}
if
(zifra==N)
{ k=k+1; }
return
k;
}
static
void Main(string[] args)
{
Console.WriteLine("Какую
цифру будем искать? ");
int
N=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Вводите
числа, выход - 0");
int
rez=0;
int
zifra;
bool
usl_vix=true;
//
числа вводятся пока пользователь не
введет 0
while
(usl_vix){
zifra=Convert.ToInt32(Console.ReadLine());
if
(zifra!=0)
{
rez=rez+schet(zifra,N);}
else
{ usl_vix=false; }
}
Console.WriteLine("
Чисел,
содержащих
цифру
= {0} равно
= {1}",N,rez);
}
}
}