对回文数的判断程序的一点思考-创新互联

 一般情况下,都是先将数字分解成个位,十位,百位,千位等等,比方说一个n位正整数,再比较第一位与第n是否相等,第二位与第n-1位是否相等,以此类推。

成都创新互联公司专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,联通服务器托管联通服务器托管,成都多线服务器托管等服务器托管服务。

在这里,我用了一个化n位数字为一个个单独的字符,然后直接比较相应的字符是否相等。直接应用函数itoa()来实现这个功能。

一. 函数itoa()简介:

itoa()为c语言的一个函数。itoa 函数是一个广泛应用的,从非标准扩展到标准的C语言。它不能被移植,因为它不是标准定义下的C语言,但是,编译器通常在一个不遵循程式标准的模式下允许其通过header ,因为它是一个从逻辑对应到标准库的函数。itoa 取整数输入值,并将其转换为相应进制数字的字符串。

函数itoa()所在头文件是:

#include "stdlib.h"

函数itoa()格式:

char itoa (int value, char string, int radix)

value: 欲转换的数据(数字);

string: 目标字符串的地址;

radix: 转换后的进制数,如10进制、16进制等等。

函数itoa()功能:

把一个整数转换为字符串,例如输入正整数123456789,那么经过函数itoa(123456789, c, 10)后输出如下:

‘1’,‘2’,‘3’,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’

函数itoa()在VS中编译通过不了,解决方案是使用函数_itoa_s()来代替函数itoa()。

二. 在回文数判断中的应用

 #include "stdafx.h"
 #include "stdlib.h"
 #include "string.h"

void main()
{
 int i,a,cp,palindromeNumber(int x);

 do
 {
     printf("200~3000之间的回文数有:\n");
     for (i=200;i<3001;i++)
     {
         a = palindromeNumber(i); //a为回文数标识,当a=1时为回文数;当a=0时不是回文数
         if (a==1)
             printf("%d\n",i);
     }
     printf("请选择是否继续\n");
 printf("1 = 继续\n");
 printf("其他 = 退出!\n");
 scanf_s("%d",&cp);
 }while(cp==1);

}

//判断数x是否为回文数

int palindromeNumber(int x)
{
 char c[20];
 int len,i,cp;

 cp = 1;
 _itoa_s(x,c,10);  //将正数x转换成10进制的字符数组c
 len = strlen(c);
 for (i=0;i  {
     if (c[i]!=c[len-1-i])
         cp = 0;
 }
 return(cp);

}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:对回文数的判断程序的一点思考-创新互联
文章起源:http://azwzsj.com/article/gegej.html