}
在这里使用了C++中标准模板库中的vector,可以构建出一个堆栈,根据短除法的方式,将每次除以8的余数放入容器中,最后反序输出即可。
转化为16进制的方法与8进制类似,只是16进制中大于9的数采用字母表示,在存取数据的时候要进行相应的转化,存放字符即可。
-------------------------------------------------------------------------------------------------------- #include
int main() { using namespace std; int n; int part1 = 0; int part2 = 1; int res = 0; cout<<\ cin>>n; for(int i=1 ;i<=n;++i){ part1 = (i%2==1) ? 1 : -1; int j = i; while(j>0){ part2 *= j; --j; } res += (part1 * part2); part2 = 1; } cout<<\ return 0; }
将表达式拆分成两个部分进行计算,第一部分和i的奇偶有关,模2进行运算即可。第二部分通过一个循环进行阶乘的计算。可以发现,阶乘的增长太大,到100后已经超出了int的存储极限,出现了错误数据。当输入的n比较小时,结果是正确的。 ---------------------------------------------------------------------------------------------------------
#include
int main() {
using namespace std;
int peachTotal = 1;
for(int i = 0;i<9;++i) //eat 9 days peachTotal = (peachTotal+1) *2;
cout<<\ return 0; }
这道题可以返过来推理,前一天的桃子数目=(今天的+1)*2,根据吃了几天桃子,然后往回推,自然想到用循环来控制计算次数。计算机最擅长的就是重复。
六、实验体会或对改进实验的建议
本次实验做了7个小题目,代码量有点多,做完后发现每个题目的编程思路是差不多的,先要找到题目背后的数学模型,根据这个模型细化出具体的解题步骤,先要做什么再做什么,然后将具体的每一步用代码来实现。
7个小程序都用到了循环结构,这样可以将重复计算的某些步骤形成模块,让计算机自己去重复执行,而不是程序员去重复的编写代码,大大节约了代码量,是代码可读性更高,提高了编程效率。
七、参考资料
《C/C++程序设计(第二版)》 《C++ Primer Plus》