要求:
输入一个数字n表示进位次数。程序应当输出一个初始值为0的二进制数每次进位的结果,每个输出结果占一行。(注意:二进制是从右往左进位的)
注:本题对输出格式无要求,前面补几个0随意,答案正确即可
输入样例:
5
输出样例:
0000001
0000010
0000011
0000100
0000101
方法一:vector动态数组存储法
这个方法是由普通数组存储改进而来,优点是可以根据输入的进位次数调整数组的大小
思路:根据进位次数多少计算最大二进制数一共有几位,以此来设置数组b的长度;每次进位都使b最后一位+1,然后遍历数组,判断是否大于1(大于1那就是2喽),有的话就把那一位归0,下一位+1,接着继续判断,直到不再需要进位就跳出最后一层循环(有利于降低程序的时间复杂度),最后逐位输出数组b即可。
#include <iostream>
using namesp

本文介绍了三种实现二进制进位的方法:vector动态数组存储法、bitset存储法和bitset重复定义法。针对不同的进位需求,分别阐述了每种方法的思路和优缺点,其中vector法能动态调整大小,而bitset法简化了代码但无法按需调整大小。
最低0.47元/天 解锁文章
4056

被折叠的 条评论
为什么被折叠?



