Задание: Числа, запись которых состоит из двух одинаковых последовательностей цифр, называются симметричными (например, 121121). Составьте функцию, которая будет проверять число на симметричность.
Посмотрите код, прога не работает и выдает только "NO"... помогите исправить: заранее благодарю.
#include "stdafx.h"
#include "math.h"
#include "stdio.h"
int _tmain(int argc, _TCHAR* argv[])
{int n, q=1, m=1, n1=0, n2=0, i, j;
scanf ("%d", &n);
while (m/10 !=0)
{ m=m/10;
q++;
}
if (q%2 !=0)
{printf ("NO");
}
for (i=1;i<=q/2; i++)
{ n1=n1*10+n;
n=n/10;
}
for (j=1; j<=q/2;j++)
{ n2=n2*10+n1;
n1=n1/10;
}
if (n2==n)
printf ("YES");
return 0;
}
Другие языки программирования и технологии
помогите найти ошибку на С++..помогите пожалуйста))
#include <iostream>
#include <string>
using namespace std;
void symmetry(string);
int main()
{
locale::global(locale(""));
string str;
cout << " Введите число: "; cin >> str;
symmetry(str);
cin.get(); cin.get();
return 0;
}
void symmetry(string s)
{
int size = s.size() + 1;
char * p = new char [size];
bool flag = true;
strcpy(p, s.c_str());
for (int n = 0; n < size - 1; n++)
{
if (p[n] < '0' || p[n] > '9')
{
cout << "\a Не является натуральным числом! ";
flag = false;
break;
}
}
if (flag)
{
for (int n = 0, m = size - 2; n < size - 1; n++, m--)
{
if (p[n] != p[m])
{
cout << " Не симметрично! ";
flag = false;
break;
}
}
}
if (flag) cout << " Симметрично! ";
delete[] p;
}
#include <string>
using namespace std;
void symmetry(string);
int main()
{
locale::global(locale(""));
string str;
cout << " Введите число: "; cin >> str;
symmetry(str);
cin.get(); cin.get();
return 0;
}
void symmetry(string s)
{
int size = s.size() + 1;
char * p = new char [size];
bool flag = true;
strcpy(p, s.c_str());
for (int n = 0; n < size - 1; n++)
{
if (p[n] < '0' || p[n] > '9')
{
cout << "\a Не является натуральным числом! ";
flag = false;
break;
}
}
if (flag)
{
for (int n = 0, m = size - 2; n < size - 1; n++, m--)
{
if (p[n] != p[m])
{
cout << " Не симметрично! ";
flag = false;
break;
}
}
}
if (flag) cout << " Симметрично! ";
delete[] p;
}
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << "n? ";
int n;
cin >> n;
int d = n > 9? log10(double(n)) + 1 : 1;
if (d % 2 == 0) {
int m = pow(10.0, d / 2);
if (n / m == n % m) cout << "yes\n"; else cout << "no\n";
} else {
cout << "no\n";
}
return 0;
}
#include <cmath>
using namespace std;
int main() {
cout << "n? ";
int n;
cin >> n;
int d = n > 9? log10(double(n)) + 1 : 1;
if (d % 2 == 0) {
int m = pow(10.0, d / 2);
if (n / m == n % m) cout << "yes\n"; else cout << "no\n";
} else {
cout << "no\n";
}
return 0;
}
Похожие вопросы
- Помогите найти ошибку Delphi легкая программка
- программирование C++. Помогите найти ошибку
- Помогите найти ошибку в коде
- Помогите найти ошибку qbasic
- Помогите найти ошибку в коде. делфи
- помогите найти ошибку в коде на Си
- Помогите найти ошибку в задачи,Паскаль...
- Помогите найти ошибку. Пожалуйста. Ассемблер.
- Всем добрый вечер) пожалуйста,помогите найти ошибку в программе-->
- Помогите найти ошибки в коде (паскаль)