首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C语言 数字回文,该如何解决

2012-09-15 
C语言 数字回文判断一个数字是否为回文,数字位数在20位内。每行输入数字n每行输该数字出是否为回文,是则输

C语言 数字回文
判断一个数字是否为回文,数字位数在20位内。 

每行输入数字n 

每行输该数字出是否为回文,是则输出Yes,否则输出No. 

Sample Input
5
88
15


Sample Output
Yes
Yes
No

用c++怎么写啊?

[解决办法]

C/C++ code
#include <stdio.h>#include <string.h>int ishw(unsigned long n){    char str[32];    int i;    int len;    if(n < 10)    {        return 0;    }    sprintf(str, "%lu", n);    len = strlen(str);    for(i = 0; i < len / 2; i++)    {        if(str[i] != str[len - 1 - i])        {            return -1;        }    }    return 0;}int main(int argc, char* argv[]){    unsigned long n;    do{        scanf("%lu", &n);        if(ishw(n) == 0)        {            printf("Yes\n");        }        else        {            printf("No\n");        }    }while(n != 0);    return 0;}
[解决办法]
C/C++ code
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int main(){    char num_str[21] = {0};    char num_rev[21] = {0};    for (size_t i = 0 ; i != 1000 ; ++i) {        sprintf(num_str, "%d", i);        strcpy(num_rev, num_str);        strrev(num_rev);        if (strcmp(num_str, num_rev) == 0)            cout << i << "\t-->\t回文" << endl;    }    return 0;}
[解决办法]
C/C++ code
#include <string.h>#include <stdio.h>int main(int argc , char* argv[]){    char string[100];    int result;    printf("Input a string and I will tell you if it is a palindrome:\n");    gets(string);    /* Reverse string and compare (ignore case): */    result = _stricmp(string, _strrev(_strdup(string)));    if (result == 0)        printf("The string \"%s\" is a palindrome\n\n", string);    else        printf("The string \"%s\" is not a palindrome\n\n", string);}
[解决办法]
探讨

C/C++ code
#include <iostream.h>
#include <string.h>

bool is_huiwen(char *str);

int main()
{
char str1[] = "abcdef";
char str2[] = "1234321";
is_huiwen(str1);
is_huiwen(str2);
……

热点排行