📄 自首数.cpp
字号:
#include <iostream>
using namespace std;
int main()
{ char str[7];
while(cin.getline(str, 7))
{
if (strlen(str) == 1 && (str[0] == '0' || str[0] == '1'))
{
printf("%sNO\n");
}
else
{
int size;
size = strlen(str);
int *a = new int [size];
int *b = new int [size];
for (int k=0; k<size; k++)
{
a[k] = int (str[k] - 48);
b[k] = int (str[k] - 48);
}
int **integer = new int *[size+1];
int i, j;
for (i=0; i<size+1; i++)
{
integer[i] = new int [size+size];
for (j=0; j<size+size; j++)
{
integer[i][j] = 0;
}
}
//大整数相乘
for (i=size-1; i>=0; i--)
{
for (j=size-1; j>=0; j--)
{
integer[size][i+j+1] += b[i] * a[j];
}
}
for (i=size+size-1; i>=0; i--)
{
integer[size][i-1] += integer[size][i] / 10;
integer[size][i] %= 10;
}
i = 0;
int flag = 0;
i = size - 1;
j = 2 * size -1;
for (; i>=0; i--, j--)
{
flag = 0;
int temp = int (str[i] - 48);
if (temp == integer[size][j])
{
flag = 1;
}
}
if (flag)
{
printf("%sYES\n");
}
else
{
printf("%sNO\n");
}
delete [] integer;
delete [] a;
delete [] b;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -