#include <iostream>
#include <string>
#include <cmath>
using namespace std;
//1. 寻找并输出11~999之间的数m,它满足m、m^2和m^3均为回文数。
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int ispalidrome(int i) //判断i是否为回文
{
int flag=0;
int *a=new int;
int n=0;
int k=10;
while(i>=1)
{
a[n]=i%k;
i/=10;
//cout<<n<<endl;
n++;
}
for(int j=0;j<n;j++)
{
if(a[j]==a[n-1-j])
flag=1;
else
flag=0;
}
return flag;
}
int main(int argc, char** argv) {
int i=11;
/*for(i=11;i<=999;i++)
{
if(ispalidrome(i))
{
if(ispalidrome(i*i))
{
if(ispalidrome(i*i*i))
{
cout<<i<<endl;
}
}
}
}*/
cout<<ispalidrome(32);
return 0;
}

为什么调试会卡住?是我的电脑配置太低了吗?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2020-05-04 13:11关注
int *a=new int;
这里分配的只是单个int,导致下面越界本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报