| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 396 人关注过本帖
标题:求指教回文数的问题
只看楼主 加入收藏
linkui0801
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2012-12-4
结帖率:25%
收藏
已结贴  问题点数:10 回复次数:4 
求指教回文数的问题
题目描述
 正向和反向读其值相等的整数称为回文数。编写一个程序,输入整数m和n(10<m<n<32000),求出从m到n之间(包括m,n)的所有回文数,并按照每行5个的形式输出。

输入格式
 整数m,n(10<m<n<32000)

输出格式
 [m,n]上的所有回文数
2013-01-02 10:22
liqingqinger
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:163
注 册:2013-1-2
收藏
得分:5 
回复 楼主 linkui0801
  这个需要分离 再来判断 可以用函数 然后 你在想想吧

求布喷。。。
我是菜鸟。。。。。
2013-01-03 14:13
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:5 
有思路了,,先写一个判断一个素是部是回文数的涵数。求一个数有多少位,当然每位数是多少也的求。求出没位数,放数组。先在就开始判断了。有个笨方法,第一个和最后一个比较,第二个和倒数第二个比较,一直到数组最中间。每次比较都成立,写个数就是回文数了。最后求【m,n】循环调用涵数判断就行,至于输出格式,数出是计下数,没输出5个,就输出个换行就行。

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-01-05 00:05
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:0 
有思路了,,先写一个判断一个素是部是回文数的涵数。求一个数有多少位,当然每位数是多少也的求。求出没位数,放数组。先在就开始判断了。有个笨方法,第一个和最后一个比较,第二个和倒数第二个比较,一直到数组最中间。每次比较都成立,写个数就是回文数了。最后求【m,n】循环调用涵数判断就行,至于输出格式,数出是计下数,没输出5个,就输出个换行就行。

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-01-05 00:39
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:0 
#include <iostream>
#include <iomanip>
using namespace std;
int Weishu(int n)//求整数n有多少位
{    int s,i=0;
    do
    { s=n%10;
        n=n/10;
        i++;
    }while(n);
    return (i);
}
void Meiweishu(int n,int *a)//求的是整数n每位数,如n=456,a[0]=6,a[1]=5,a[2]=4
{    int i=0;
    a[i]=0;
    do
    { a[i]=n%10;
        n=n/10;
        i++;
    }while(n);
   

}
void nihuan(int b,int *a,int *c)//是将a数组的元素,逆换下,如a[0]=6,a[1]=5,a[2]=4,换成,c[0]=4,c[1]=5 ,c[2]=6
{for(int k=0;k<b;k++)
        {c[k]=a[b-k-1];
        }
}
bool panduan(int b,int *c)//判断这个b位整数n,是不是回文数,是返回true,不是返回false。如45677,五位数,只需要判断4=4,5=7,6=6,是否成立都成立就是回文数循环次数=b/2=2,数数组是从0开始的
{    if(b==1)
        return true;
    for(int k=0;k<b/2;k++)
    {    if(c[k]==c[b-k-1])
            return true ;
        else return false;
    }
}
int main()
{    int *a,*c,i=0,n,b,s=0,m;
    cout<<"请输入m,n:"<<endl;
    cin>>m>>n;

    for(i=m;i<=n;i++)
        {
            b=Weishu(i);
        a=new int [b];
        c=new int [b];
        Meiweishu(i,a);
            nihuan(b,a,c);
    if(panduan(b,c)==true)
    {    cout<<setw(4)<<i<<setw(4);//若n大于1000,请把setw(4)的4写大点,不然后面的数都是连在一起了
    s++;
    if(s%5==0)
        cout<<endl;
    }
        }
        cout<<endl;
    return 0;
}//写的很菜,楼主参考,有好的方法说下,同讨论下,同学习同进步

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-01-05 13:24
快速回复:求指教回文数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016120 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved