C++ 输出20-2000所范围内有的回文数

各位大侠,高手救命啊,急回文数的各位数字正序和倒序一样。如:22,323,1221,都是回文数。具体要求如下:(1)函数intprocess(intn);判断一个数是不是... 各位大侠,高手 救命啊,急

回文数的各位数字正序和倒序一样。如:22,323,1221,都是回文数。

具体要求如下:

(1) 函数
int process(int n); 判断一个数是不是回文数,如果是,返回1,否则返回0;

(2) 主函数
调用函数找出20-2000中的回文数并输出,每行输出6个。
展开
 我来答
分享社会民生
高粉答主

2020-04-13 · 热爱社会生活,了解人生百态
分享社会民生
采纳数:1248 获赞数:283336

向TA提问 私信TA
展开全部

代码:

#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)退出子程序而已。



jiangchaokenan
2010-06-19 · TA获得超过342个赞
知道答主
回答量:162
采纳率:0%
帮助的人:119万
展开全部
#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上编译通过,不是很简洁,但是程序正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Xiinho
2010-06-19 · TA获得超过1279个赞
知道小有建树答主
回答量:776
采纳率:0%
帮助的人:761万
展开全部
#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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mike4o50
2010-06-19 · 超过20用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:54.4万
展开全部
#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;
}
不过还是用字符操作简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式