程序设计导引及在线实践

Page 100

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.

base[0] = 1 base[k] = 2k+1 - 1 = 2 * (2k - 1) + 1 = 2 * base[k -1] + 1 参考程序 #include <stdio.h> #include<string.h> int main() { int i,k,base[31],sum; char skew[32]; base[0]=1; for( i = 1; i < 31; i++) base[i] = 2 * base[i-1] + 1; while(1) { scanf("%s", skew); if (strcmp(skew,"0") == 0) break; sum = 0; k = strlen(skew); for( i = 0; i < strlen(skew); i++) { k--; sum += (skew[i] - '0') * base[k]; } printf("%d\n",sum); } return 0; }

练习题 1.十进制到八进制(ai2734) 把一个十进制正整数转化成八进制

2.八进制到十进制(ai2735) 把一个八进制正整数转化成十进制

3.2 进制转化为 16 进制(ai2798) 输入一个 2 进制的数,要求输出该 2 进制数的 16 进制表示。在 16 进制的表示中, A-F 表示 10-15

4.八进制小数(ai2765) 八进制小数可以用十进制小数精确的表示。比如,八进制里面的 0.75 等于十进制 里面的 0.963125 (7/8 + 5/64)。所有小数点后位数为 n 的八进制小数都可以表示成小数点 后位数不多于 3n 的十进制小数。你的任务是写一个程序,把(0, 1)中的八进制小数转化 成十进制小数。 98


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.