| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2866 人关注过本帖
标题:编了一个程序:判断一个数是不是回文数。为什么我测试回文数12345654321的时 ...
只看楼主 加入收藏
liuyinuo2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-7-28
结帖率:0
收藏
已结贴  问题点数:10 回复次数:7 
编了一个程序:判断一个数是不是回文数。为什么我测试回文数12345654321的时候,测试结果是NO,求高手解答
编了一个程序:判断一个数是不是回文数。为什么我测试回文数12345654321的时候,测试结果是NO,求高手解答
#include<iostream>
#include<math.h>
using namespace std;
int judge(int x)
{
int i,a[200],n,k;
k=1;
while(x!=0)
{
    a[k]=x%10;
    x=x/10;
    k++;   
}
n=k-1;
for(i=1;i<=n/2;i++)
{
    if(a[i]!=a[n-i+1])
    {
        return 0;
    }
}
return 1;
}
int main( )
{
    int x;
    cin>>x;
    if(judge(x)==1)
    cout<<"Yes";
    else
    cout<<"No";
}
搜索更多相关主题的帖子: 判断 回文 测试 结果 int 
2017-07-30 22:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:4 
int 能存得下 12345654321 吗?(我也不知道,因为C/C++并没有规定int的值范围)

BTW: 你的那些坏习惯是书上教的吗?比如 序号从1开始,比如 将所有变量都定义到开始处。

2017-07-31 08:19
liuyinuo2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-7-28
收藏
得分:0 
回复 2楼 rjsp
我是暑假刚学一个月,变量定义的开始的地方我觉得容易识别啊,我也不知道什么样的是好习惯。能推荐一个初学者的书吗?
2017-07-31 09:18
tredy6t
Rank: 2
等 级:论坛游民
帖 子:41
专家分:59
注 册:2015-8-6
收藏
得分:4 
程序代码:
#include<iostream>
#include<string>

int main()
{
    std::string str;
    getline(std::cin, str);
    unsigned len = str.length();
    size_t nSize = 0;
    for ( ;nSize < len / 2; ++nSize)
    {
        if (str[nSize] != str[len - nSize - 1])
            break;
    }
    if (nSize == len / 2)
        std::cout << "YES";
    else
        std::cout << "NO";
    return 0;
}
2017-07-31 17:54
liuyinuo2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-7-28
收藏
得分:0 
回复 4楼 tredy6t
我测试了,完全正确,但我看不懂你写的程序,你学了多久了?
2017-07-31 22:38
lv152
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2017-8-2
收藏
得分:4 
你输入的这个数越界了,数的值太大了
2017-08-02 09:10
松鼠偷葡萄
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-8-26
收藏
得分:0 
我觉得你可以输一个字符串试着用另一种方法测试回文
2017-08-26 18:13
Elielieli
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2017-9-19
收藏
得分:0 
#include<iostream>
#include<string>
using namespace std;
string s;
long long len;
bool f;
int main(){
    cin>>s;
    len=s.size();
    f=true;
    for(int i=0;i<=len/2;i++){
        if(s[i]!=s[len-i-1]){
            f=false;
            break;
        }
    }
    if(f)cout<<'Yes'; else cout<<'No';
    return 0;
}
2017-09-23 20:36
快速回复:编了一个程序:判断一个数是不是回文数。为什么我测试回文数123456543 ...
数据加载中...
 
   



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

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