读书人

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

发布时间: 2012-09-15 19:09:28 作者: rapoo

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);
……

读书人网 >C++

热点推荐