习题 ct9_1:进制转换☆
2010-07-26 21:48
232 查看
/* 题目描述: 编写一个NumConvert函数,要求声明为int NumConvert(int n, int k); 功能是把传入的参数n按照k进制进行转换并输出结果 输入: 按参数传递,2<=k<=36,n在int的范围内 输出: 按参数传递输入,通过标准输出,输出相应的结果 输出的结果应当不包含换行 如果超出10,应当用大写字母依次表示 函数执行成功则应当返回0值 样例输入: 2 2 9 4 31 16 -31 16 样例输出: 10 21 1F -1F 其它: 请不要写上main函数 难度:for beginner */ #include <cstdio> int NumConvert(int n, int k) { char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char result[100] = {0}; int i = 0; unsigned num = n; // 这题就这里需要特别注意 // 要用一个比int范围大的变量类型来装要转换的数 // 因为int最小值的绝对值要比最大值大1, 无法对最小值求反 // 而且要特别特别注意的是, 不能用long, 因为在现在的编译器里long和int是一样大的!! 都是4个字节!! if( n < 0 ) { num = -n; printf("-"); } do { result[i] = digits[num % k]; num /= k; i++; } while( num != 0 ); for( i--; i >= 0; i-- ) printf("%c", result[i]); return 0; }
相关文章推荐
- 算法竞赛入门经典 习题 3-5 3-6 进制转换
- C语言习题5.18--进制转换
- 习题 ct5_3: 恶魔数字7★
- 习题-----进制转换
- 习题 ct6_1: 循环移位☆
- 习题 ct7_1: 卡片拼数1★
- 进制转换
- CT 3D reconstruction, Remove Ring Artifact
- 课后习题page100.pp3.3
- hdu-进制转换
- PythonNLP学习进阶:习题练习(2016-2-12)
- 习题7-2:黄金图形
- 位运算 进制转换
- PAT习题解:1010. Radix (25)
- Anonymous class puzzler习题
- SICP 习题(1.1,1.2,1.3,1.4)解题总结。
- hdoj 2031 进制转换
- C语言习题三
- SICP 习题(1.5)解题总结:应用序和正则序
- 《Metasploit魔鬼训练营》第一章习题