判断输入的整数是不是回文数
2015-06-12 17:01
453 查看
功能
判断输入的整数是不是回文数 。
思路描述:
第一步 将数字转化为字符串 . 可以使用 sprintf()函数 和itoa()函数 就可以把数字转化为字符串
第二步 就是定义两个指针 一个指向字符串的开始位置 一个指向字符串的最后一个字符 然后就行判断 就可以了 可以使用 while() 也可以使用for()循环语句
遇到的问题:
使用sprintf的时候写成了
sprintf(buf,%d\n,num);结果用strlen测试传递过来的字符串的时候总是多一个 导致结果不正确 多的一个字符就是\n
还有就是 first + strlen (src) 指针是指向\0 的位置 所以要-1 指向最后一个字符
不足之处
这个程序的不足之出 就是输入的数据有限制
0 < x <2^64;
编译器
GCC
代码如下
第一次写博客 只希望可以坚持下去
对自己的要求:
用自己的方式 写出属于自己的代码! Good Luck
判断输入的整数是不是回文数 。
思路描述:
第一步 将数字转化为字符串 . 可以使用 sprintf()函数 和itoa()函数 就可以把数字转化为字符串
第二步 就是定义两个指针 一个指向字符串的开始位置 一个指向字符串的最后一个字符 然后就行判断 就可以了 可以使用 while() 也可以使用for()循环语句
遇到的问题:
使用sprintf的时候写成了
sprintf(buf,%d\n,num);结果用strlen测试传递过来的字符串的时候总是多一个 导致结果不正确 多的一个字符就是\n
还有就是 first + strlen (src) 指针是指向\0 的位置 所以要-1 指向最后一个字符
不足之处
这个程序的不足之出 就是输入的数据有限制
0 < x <2^64;
编译器
GCC
代码如下
#include <stdio.h> #include <string.h> int palindrom( char *src ) { int ret = (src != NULL); if( ret ){ int num = strlen(src); char *first = src; char *last = first +( num -1); while( first < last ){ if( *first == *last ){ first++; last--; } else{ break; } } return *first == *last ? 0 : 1; } return -1; } int main( void ) { unsigned long long int num; char buf[20] = {0}; printf("input a num!\n"); scanf("%d",&num); sprintf(buf,"%d",num); printf("%d\n",palindrom(buf)); return 0; }
第一次写博客 只希望可以坚持下去
对自己的要求:
用自己的方式 写出属于自己的代码! Good Luck
相关文章推荐
- win7下如何查看Net Framework版本
- SharePoint自动化系列——通过PowerShell在SharePoint中批量做数据
- [LeetCode] Invert Binary Tree
- oracle bulk collect is table of 批量操作
- 在DOS下强制杀进程的命令
- 杭电2012素数判定(我们试着长大,一路跌跌撞撞)
- python中xrange和range的异同
- 黑马程序员——java基础-IO(二)
- Codeforces548B:Mike and Fun
- 敏捷开发之Scrum扫盲篇
- 如何在Git中撤销一切
- AS的ignore
- WebService使用实例
- 使用Emmet加速Web前端开发
- OC3_字典
- c#base64图片格式
- 分布式助手Zookeeper(二)
- 1035. Password (20)
- Android实用方法—activity多个fragment切换
- SourceInsight注册码