问题描述
- 求调试一回文数程序,运行老出错
- #include
#include
#include
using namespace std;
int Bit(int n);
int CircleNum(int m);
int bit[16];
int ij=0k=0;int main()
{
int leftright;
cout<<""请输入最小值:"";
cin>>left;
cout<<""请输入最大值:"";
cin>>right;
for(i=left;i {
if(CircleNum(i)&&Bit(i))
{
cout if(i%10==0)
cout }
else
cout }
return 0;
}
int CircleNum(int m)
{
int t=10;
int n=0c=0;
for(t;t {
n+=1;
}
int a[n+1];
for(i=n;i>=0;i--)
{
a[i]=m/((int)pow(10i));
m=m%((int)pow(10i));
}
int mid=(n+1)/2;
for(j=0;j {
if(a[j]==a[n-j])
c+=1;
}
if(c==(n/2)+1)
return true;
else
return false;
}
int Bit(int n)
{
int s;
for(i=0;i {
bit[i]=n%2;
n/=2;
if(n==1)
{
n=0;
}
}
for(i=16;i>=0;--i)
{
s+=bit[i]*((int)pow(10i));
}
if(CircleNum(s))
return true;
else
return false;
}
解决方案
int * a = new int[n+1];
解决方案二:
还有别的错
解决方案三:
#include<iostream>#include<iomanip>#include<math.h>using namespace std;int main(){ int leftright; cout<<""请输入最小值:""; cin>>left; cout<<""请输入最大值:""; cin>>right; char temp[100]; for(int i=left;i<=right;i++) { itoa(i temp 10); int n = strlen(temp); int j = 0; for (; j < n / 2; j++) { if (temp[j] != temp[n - 1 - j]) break; } if (j == n / 2) cout << i << endl; } return 0;}