![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C++ 输出20-2000所范围内有的回文数
各位大侠,高手救命啊,急回文数的各位数字正序和倒序一样。如:22,323,1221,都是回文数。具体要求如下:(1)函数intprocess(intn);判断一个数是不是...
各位大侠,高手 救命啊,急
回文数的各位数字正序和倒序一样。如:22,323,1221,都是回文数。
具体要求如下:
(1) 函数
int process(int n); 判断一个数是不是回文数,如果是,返回1,否则返回0;
(2) 主函数
调用函数找出20-2000中的回文数并输出,每行输出6个。 展开
回文数的各位数字正序和倒序一样。如:22,323,1221,都是回文数。
具体要求如下:
(1) 函数
int process(int n); 判断一个数是不是回文数,如果是,返回1,否则返回0;
(2) 主函数
调用函数找出20-2000中的回文数并输出,每行输出6个。 展开
4个回答
展开全部
代码:
#include<iostream>usingnamespacestd;intmain(){intpalindrome=0,reverse=0;
intnum=0,key=0,i=0,j=0,count=0;
cout<<""<<endl;for(j=10;j<=2000;j++){
reverse=0;
key=j;palindrome=j;for(i=1;palindrome!=0;i++){
num=palindrome%10;
palindrome=palindrome/10;reverse=num+(reverse*10);
扩展资料:
return 0代表程序正常退出。return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值。
return语句用来结束循环,或返回一个函数的值。
1、return 0,说明程序正常退出,返回到主程序继续往下执行。
2、return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0或return 1对程序执行的顺序没有影响,只是大属家习惯于使用return(0)退出子程序而已。
展开全部
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
#include <iomanip>
using std::setw;
int process( int );
int wei( int );
int shi( int );
int main()
{
int number;
int count = 0;
cout << "请输入你要判断的数:" << endl;
cin >> number;
if( process( number) )
{
cout << "这是一个回文数" << endl;
}
else
{
cout << "这不是一个回文数" << endl;
}
for( int i = 20; i <= 2000; i++ )
{
if( process( i ) )
{
cout << setw( 5 ) << i;
count++;
if( count % 6 == 0)
{
cout << endl;
}
}
}
return 0;
}
int process( int num )
{
int n = wei( num );
int m = n;
int count = 0;
for( int i = 1; i <= m / 2; i++ )
{
if( num % 10 != num / shi( n ) )
{
break;
}
count++;
num = ( num - shi( n ) ) / 10;
n = n - 2;
}
if( count == m / 2 )
{
return 1;
}
else
{
return 0 ;
}
}
int wei( int num )
{
int wei = 1;
while( num / 10 != 0 )
{
num = num /10;
wei++;
}
return wei;
}
int shi( int num )
{
int ci = 1;
for( int i = 1; i < num; i++ )
{
ci = 10 * ci;
}
return ci;
}
没有仔细思考,常规方法,程序在vs2010上编译通过,不是很简洁,但是程序正确。
using std::cout;
using std::endl;
using std::cin;
#include <iomanip>
using std::setw;
int process( int );
int wei( int );
int shi( int );
int main()
{
int number;
int count = 0;
cout << "请输入你要判断的数:" << endl;
cin >> number;
if( process( number) )
{
cout << "这是一个回文数" << endl;
}
else
{
cout << "这不是一个回文数" << endl;
}
for( int i = 20; i <= 2000; i++ )
{
if( process( i ) )
{
cout << setw( 5 ) << i;
count++;
if( count % 6 == 0)
{
cout << endl;
}
}
}
return 0;
}
int process( int num )
{
int n = wei( num );
int m = n;
int count = 0;
for( int i = 1; i <= m / 2; i++ )
{
if( num % 10 != num / shi( n ) )
{
break;
}
count++;
num = ( num - shi( n ) ) / 10;
n = n - 2;
}
if( count == m / 2 )
{
return 1;
}
else
{
return 0 ;
}
}
int wei( int num )
{
int wei = 1;
while( num / 10 != 0 )
{
num = num /10;
wei++;
}
return wei;
}
int shi( int num )
{
int ci = 1;
for( int i = 1; i < num; i++ )
{
ci = 10 * ci;
}
return ci;
}
没有仔细思考,常规方法,程序在vs2010上编译通过,不是很简洁,但是程序正确。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
int process(int n)
{
int i,j;
char a[20];
itoa(n,a,10);
j=strlen(a)-1;
for(i=0;i<j;i++,j--)
{
if(a[i]!=a[j])return 0;
}
return 1;
}
int main()
{
int i,j;
for(i=20,j=0;i<=2000;i++)
{
if(process(i))j++,cout<<i<<' ';
if(j==6)j=0,cout<<endl;
}
cout<<endl;
}
using namespace std;
int process(int n)
{
int i,j;
char a[20];
itoa(n,a,10);
j=strlen(a)-1;
for(i=0;i<j;i++,j--)
{
if(a[i]!=a[j])return 0;
}
return 1;
}
int main()
{
int i,j;
for(i=20,j=0;i<=2000;i++)
{
if(process(i))j++,cout<<i<<' ';
if(j==6)j=0,cout<<endl;
}
cout<<endl;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
int process(int n)
{
int a[20];
int b=0;
int i=0;
int m=n;
int k=0;
while(n!=0)
{
a[i]=n%10;
n=n/10;
i++;
}
i=i-1;
for(int k=0;k<=i;k++)
{
int j=k;
while(i-j>0)
{
a[k]*=10;
j++;
}
b=a[k]+b;
}
if(b==m)
cout<<m<<endl;
return 0;
}
int main()
{
int i;
for(i=20;i<20000;i++)
{
process(i);
}
system("pause");
return 0;
}
不过还是用字符操作简单
using namespace std;
int process(int n)
{
int a[20];
int b=0;
int i=0;
int m=n;
int k=0;
while(n!=0)
{
a[i]=n%10;
n=n/10;
i++;
}
i=i-1;
for(int k=0;k<=i;k++)
{
int j=k;
while(i-j>0)
{
a[k]*=10;
j++;
}
b=a[k]+b;
}
if(b==m)
cout<<m<<endl;
return 0;
}
int main()
{
int i;
for(i=20;i<20000;i++)
{
process(i);
}
system("pause");
return 0;
}
不过还是用字符操作简单
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询