Нужно решение в 2-х вариантах - C (СИ)
Формулировка задачи:
Дано натуральное число N. Выяснить, входит ли цифра X в запись числа N2.
Дано натуральное число N. Выяснить, входит ли цифра X в запись числа N2
Правильное решение есть. Но нужно то же но без AnsiString s выполнить.
#include <vcl.h> #include <math.h> #pragma hdrstop #include <windows.h> #include <wincon.h> #include <stdio.h> #include <iostream.h> #include <conio.h> void main() { AnsiString s; int w,n,i,x; cout<<"Vvedite chislo N: "; //чтение введенного числа N cin>>n; cout<<"Vvedite cifru X: "; //чтение введенной цифры X cin>>x; //перевод числа N^2 в строковую переменную s=IntToStr(n*n); //счетчик =0, если в числе N^2 нет цифры X w=0; //цикл по всем символам числе N^2 for (i=1;i<=s.Length();i++) //если очередной символ числа N^2 совпадает с цифрой X, то наращиваем счетчик if(StrToInt(s[i])==x){w++;} //иначе, выводим о том, что в числе N^2 нет цифры X if(w==0) cout<<"V chisle "<<n*n<<" net cifri "<<x; //если счетчик не нулевой, то выводим о том, что в числе N^2 есть цифра X else cout<<"V chisle "<<n*n<<" est' cifra "<<x; getch(); }
Решение задачи: «Нужно решение в 2-х вариантах»
textual
Листинг программы
int n,x,g,steps,module,a,s = 0; cin >> n >> x; g=1; module =1; steps = 1; n = n*n; while (module !=0){ module = n / g; g=g*10; steps++; } steps-=1; g/=100; for (i = 1 ;i<=steps;i++){ a=n/g; n=n-a*g; g=g/10; if ( a == d ){ s=s+1;} } if (s != 0){ cout << "YES\n";} else{ cout << "NO\n";}
Объяснение кода листинга программы
- Сначала объявляются переменные:
n
,x
,g
,steps
,module
,a
,s
и инициализируются значением 0. - Затем с помощью
cin
вводятся значения для переменныхn
иx
. - Значение переменной
g
устанавливается равным 1. - Значение переменной
module
устанавливается равным 1. - Значение переменной
steps
устанавливается равным 1. - Значение переменной
n
изменяется наn*n
. - Затем начинается цикл while, который выполняется до тех пор, пока значение переменной
module
не станет равным 0. - Внутри цикла значение переменной
module
вычисляется какn / g
. - Значение переменной
g
умножается на 10. - Значение переменной
steps
увеличивается на 1. - Затем начинается цикл for, который выполняется
steps
раз. - Внутри цикла значение переменной
a
вычисляется какn / g
. - Значение переменной
n
уменьшается наa * g
. - Значение переменной
g
делится на 10. - Если значение переменной
a
равноd
, то значение переменнойs
увеличивается на 1. - По завершении цикла for проверяется значение переменной
s
. - Если
s
не равно 0, то выводится сообщениеYES
. - В противном случае выводится сообщение
NO
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д