| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1962 人关注过本帖
标题:“回文数猜想”的程序
取消只看楼主 加入收藏
linshijin
Rank: 2
来 自:厦门
等 级:论坛游民
帖 子:40
专家分:24
注 册:2010-12-8
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
“回文数猜想”的程序
程序代码:
//“回文数猜想”
//从任意一个两位数或两位以上的自然数开始,将这个数与它的逆序数相加,得到一个新数,再用这个新//数与它的逆序数相加,不断重复这个操作,经过若干的逆序数相加,可能得到一个回文数。
//程序开始运行,要求用户首先输入一个十进制整数;
//计算机列举出获得回文数的步骤;
//给出是否找到回文数及其数值的答案。
#include<iostream>
#define MAX 2147483647
using std::cin;
using std::cout;
using std::endl;
void main()
{
    long reverse(long);
    bool judge(long);
    long n;
    int count=0;
    cout<<"请输入一个大于10的整数:"
        <<endl;
    cin>>n;
    if(n>=MAX||n<10)
    {
        cout<<"输入错误!"<<endl;
        return;
    }
    cout<<endl;
    cout<<"获得回文数的过程如下:"<<endl;
    while(!judge(n+reverse(n)))
    {
        if((n>=MAX||reverse(n)>=MAX)||(reverse(n)<=0))
        {
            cout<<"有限步骤内没有找到回文数!"<<endl;
            return;
        }
        else
        {
            cout<<"["<<++count<<"]:"<<n<<"+"<<
            reverse(n)<<"="<<reverse(n)+n<<endl;
            n+=reverse(n);
        }
    }
    cout<<"["<<++count<<"]:"<<n<<"+"<<reverse(n)<<"="<<reverse(n)+n<<endl;
    cout<<"获得回文数是: "<<n+reverse(n)<<endl;
}

long reverse(long n)
{
    long r;
    for(r=0;n>0;n/=10)
    r=r*10+n%10;
    return r;
}

bool judge(long s)
{
    bool success=false;
    if(reverse(s)==s)
    success=true;
    return success;
}
            
搜索更多相关主题的帖子: 回文数猜想 回文数猜想 
2010-12-09 09:31
linshijin
Rank: 2
来 自:厦门
等 级:论坛游民
帖 子:40
专家分:24
注 册:2010-12-8
收藏
得分:0 
回复 2楼 vandychan
昨天刚注册的,感觉这个论坛很不错啊!!新手一般都会比较活跃的!

情不知所起,一往情深
2010-12-09 12:10
linshijin
Rank: 2
来 自:厦门
等 级:论坛游民
帖 子:40
专家分:24
注 册:2010-12-8
收藏
得分:0 
回复 3楼 五当家
呵呵!

情不知所起,一往情深
2010-12-09 12:10
快速回复:“回文数猜想”的程序
数据加载中...
 
   



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

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