Нужно решение в 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";}

Объяснение кода листинга программы

  1. Сначала объявляются переменные: n, x, g, steps, module, a, s и инициализируются значением 0.
  2. Затем с помощью cin вводятся значения для переменных n и x.
  3. Значение переменной g устанавливается равным 1.
  4. Значение переменной module устанавливается равным 1.
  5. Значение переменной steps устанавливается равным 1.
  6. Значение переменной n изменяется на n*n.
  7. Затем начинается цикл while, который выполняется до тех пор, пока значение переменной module не станет равным 0.
  8. Внутри цикла значение переменной module вычисляется как n / g.
  9. Значение переменной g умножается на 10.
  10. Значение переменной steps увеличивается на 1.
  11. Затем начинается цикл for, который выполняется steps раз.
  12. Внутри цикла значение переменной a вычисляется как n / g.
  13. Значение переменной n уменьшается на a * g.
  14. Значение переменной g делится на 10.
  15. Если значение переменной a равно d, то значение переменной s увеличивается на 1.
  16. По завершении цикла for проверяется значение переменной s.
  17. Если s не равно 0, то выводится сообщение YES.
  18. В противном случае выводится сообщение NO.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5
Похожие ответы