西安交大计算机考研软件工程编程题库(二十四)
2021/9/18 22:07:10
本文主要是介绍西安交大计算机考研软件工程编程题库(二十四),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
西安交大计算机考研软件工程编程题库(二十四)
- 鄙人今年备考,主要目的在于记录学习历程,望道友们勿喷~
- 希望能做到每日一题~
- 开始炼丹~
上篇链接:西安交大计算机考研软件工程编程题库(二十三)
下篇链接:西安交大计算机考研软件工程编程题库(二十五)
文章目录
- 西安交大计算机考研软件工程编程题库(二十四)
- 一、题目
- 二、解答
- 1.分析
- 2.代码实现
- 3.输出结果
- 总结
一、题目
设计下面两个函数:
- 函数
readoctal()
,读入八进制序列,转换成十进制正整数;- 函数
writeoctal()
,将十进制正整数转换成相应的八进制数字序列,并打印出来。
二、解答
1.分析
分析一波,本题的第二问可参考西安交大计算机考研软件工程编程题库(十八)这道题的实现方式。
- 对于第一问八进制转十进制,先回忆一下数学上的计算方式,假设一个八进制数123,若想转换为十进制,只需要做计算1x82+2x81+3x80=83。
- 为实现上式,需要完成的步骤有:数据拆分&乘以相应的8的n-1次幂,不知道看到数据拆分是否让道友们想到上一题递归拆分数据,这里可以继续套用上一题。
话不多说,实现一下。
Ps:不出意外鄙人的此系列文章都会用C实现,其他语言的道友见谅~。
2.代码实现
代码如下:
#include<stdio.h> #include<math.h> //递归实现十进制转八进制 void readoctal(int n, unsigned int radix){ n = (unsigned int)n; if(n/radix){ readoctal(n/radix, radix); } putchar('0' + n%radix); } //递归实现八进制转十进制 void writeoctal(int n, int result, int i){ if(n/10 == 0){ printf("%d", result+=(n*pow(8, i))); } else{ result+=((n%10)*pow(8, i)); writeoctal(n/10, result, ++i); } } int main(){ int n8, n10; //用于输入 int result = 0, flag = 0; //result用来存放结果,flag用于标记个位十位百位等(形参偷懒写成i了) //测试第一问 printf("——————————第一问——————————\n"); printf("请输入一个十进制数:\n"); scanf("%d", &n10); printf("原始十进制数据为:%d\n", n10); printf("输出八进制数据为:"); readoctal(n10, 8); //测试第二问 printf("\n——————————第二问——————————\n"); printf("请输入一个八进制数:\n"); scanf("%d", &n8); printf("原始八进制数据为:%d\n", n8); printf("输出十进制数据为:"); writeoctal(n8, result, flag); return 0; }
3.输出结果
总结
本题如果没有之前一些题目的铺垫,可能会实现起来有一定难度,但经过前面的铺垫,写起来会轻松很多。本题鄙人写的有些随意,结果是没问题,但对于第二问的写法,个人认为不是特别满意,道友们适当借鉴,自行斟酌~
Ps:
一个小小的建议,如果写这道题的时候发现前面写过的一些经典方法产生了遗忘,建议适当回顾一下~
这篇关于西安交大计算机考研软件工程编程题库(二十四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了